e1732a364fed
|
55088eb268
|
令ws在upgrade失败时也解析X-forwared-for;unix监听不打印@,关联 #191
|
2022-12-14 01:09:50 +08:00 |
|
e1732a364fed
|
502d83c52f
|
令ws在fallback失败给出具体原因;fix #194
|
2022-12-12 08:43:36 +08:00 |
|
e1732a364fed
|
2e5a33feb1
|
修订文档,示例,代码;解决http头层回落代码导致panic的bug;
添加 encrypt_algo 配置;
添加 configAdapter包
|
2022-11-30 22:40:26 +08:00 |
|
e1732a364fed
|
0546be296e
|
修订文档,示例,代码
|
2022-11-30 19:32:46 +08:00 |
|
e1732a364fed
|
dbed52a11e
|
http添加no_resp_h_c配置,遇到http响应后绕过默认响应头
这样可以配合真实服务器响应.
|
2022-11-30 18:45:29 +08:00 |
|
e1732a364fed
|
0f527cfba4
|
修订文档;令http层支持回落
|
2022-11-30 17:02:29 +08:00 |
|
e1732a364fed
|
c05f8b8b53
|
改进代码
|
2022-11-01 19:40:57 +08:00 |
|
e1732a364fed
|
ee4ddcdebe
|
修复一处ws握手前http验证时短读导致ws的earlydata功能可能出错
|
2022-11-01 19:30:42 +08:00 |
|
e1732a364fed
|
afd84d4235
|
修订代码, close #115
|
2022-05-23 12:17:18 +08:00 |
|
e1732a364fed
|
9f4752b67a
|
修订代码
|
2022-05-23 11:20:48 +08:00 |
|
e1732a364fed
|
5411d0edf8
|
修正nginx响应的行为
|
2022-05-23 10:57:59 +08:00 |
|
e1732a364fed
|
28437898e3
|
添加nginx响应中的 Content-Length
|
2022-05-23 10:48:05 +08:00 |
|
e1732a364fed
|
524cb655ac
|
修复nginx响应的header没有被写入的问题
WriteHeader要在写入所有Header后再调用.
|
2022-05-23 10:41:59 +08:00 |
|
e1732a364fed
|
92dd5f6eb5
|
修复错误
|
2022-05-23 10:31:45 +08:00 |
|
e1732a364fed
|
686a215d24
|
修订代码,文档;令grpcSimple返回正确的h2c 拒绝响应
定义了 netLayer.RejectConn,并令 netLayer.IOWrapper 实现 RejectConn
只要是实现了 netLayer.RejectConn 的连接,不回复 http1.1响应 ,而是 按照 RejectConn 自己的方式进行 Reject响应。
令quic也不返回 http1.1响应。不过因为quic包可定制性比较差,似乎没法返回自定义响应?所以暂时先直接做关闭处理。
|
2022-05-23 10:26:46 +08:00 |
|
e1732a364fed
|
e795eb4816
|
修订代码,文档;为grpc和ws添加解析X-Forwarded-For 功能
未经过测试
|
2022-05-23 08:41:22 +08:00 |
|
e1732a364fed
|
7e69f17927
|
修订代码,文档
|
2022-05-22 20:38:40 +08:00 |
|
e1732a364fed
|
fe843a1280
|
修复 nginx 类型 的 reject 的 多个错误
发现实测无法读到任何reject的响应。审查代码,发现 Content-Length 是19,但是 404 page not found
只有18个字符,怎么回事?
发现curl返回的响应生成的文件中,缺少最后一个换行符,导致实际的代码中 也 少写了一个。
而403的响应的Content-Length 之前写的是 169,但是给出的长度远超过169,而且 用错了引号,用了反引号,导致 转义字符 被原封不动输出了,这也是严重bug
其它两个错误:
400 和 403 的响应逻辑 写反了。
403响应中的 nginx 版本 与 其它响应中的 nginx版本不匹配
|
2022-05-22 20:07:33 +08:00 |
|
e1732a364fed
|
8652a23c7c
|
修订代码
|
2022-05-21 18:58:53 +08:00 |
|
e1732a364fed
|
78faa9ebae
|
修订代码,文档,示例
|
2022-05-21 18:47:33 +08:00 |
|
e1732a364fed
|
ac7024cd3e
|
修订示例,代码; header配置新增strict项,默认为false
若strict为true,则会检查请求中的每一个http header是否匹配,如果不匹配,则拒绝连接.
|
2022-05-20 15:13:25 +08:00 |
|
e1732a364fed
|
8a96afe5e2
|
修订文档,示例,代码
|
2022-05-18 21:10:00 +08:00 |
|
e1732a364fed
|
e7a1f0a202
|
修订代码,文档
|
2022-05-17 05:47:09 +08:00 |
|
e1732a364fed
|
bf6b7b79c8
|
修订文档;修订日志和error方面的代码
|
2022-05-10 23:32:35 +08:00 |
|
e1732a364fed
|
41d9358f51
|
修订文档, 代码
|
2022-05-09 20:19:00 +08:00 |
|
e1732a364fed
|
5723c73297
|
修订代码,文档,示例;支持客户端证书和CA.
|
2022-05-08 08:30:59 +08:00 |
|
e1732a364fed
|
2371824b30
|
修订代码,文档;
支持 grpc 遇到 h1请求以及未知请求时,回落到 h1
httpLayer中添加 几个 nginx的真实响应。
RejectClient中新增nginx类型,返回 nginx真实响应。
在没有回落时返回 400 http相应 然后再关闭,而不是直接关闭。
|
2022-05-07 15:27:53 +08:00 |
|
e1732a364fed
|
3e7e779920
|
修订代码; 完善ws; 令Pool使用指针,而不是slice
令 websocket在path访问正确但是不是ws连接时,也进行回落,而不是返回一个错误
将 GetH1RequestMethod_and_PATH_from_Bytes 改名为 ParseH1Request, 且支持 读取header
同时新增了 RawHeader 结构 用于 上述目的。httpLayer还添加了 CanonicalizeHeaderKey 方法。
令Pool使用指针 后,测速从 3200左右上升至3800左右,也不知道是不是这个优化导致的。如果是的话,那也太猛了。
|
2022-05-07 09:51:45 +08:00 |
|
e1732a364fed
|
dfebe3f707
|
修订代码;将fallback的from从string改为[]string
这样可以支持从多个listen fallback到相同的目标,又不至于使用默认回落, 更灵活.
|
2022-05-06 22:48:15 +08:00 |
|
e1732a364fed
|
516870604b
|
修复若干bug和问题
修复 panic捕获后没有按行打印出 的问题
修复当 toml中没有dial给出时自动退出的问题;应该自动添加一个direct并继续运行。
修复fallback中填写from时会闪退的bug, 这是一个傻bug
修复alpn无法回落的bug, 这是由于服务端没有给出完整的alpn列表导致的
|
2022-05-06 18:33:30 +08:00 |
|
e1732a364fed
|
5d31ee4cfe
|
修订代码拼写
|
2022-05-06 17:26:20 +08:00 |
|
e1732a364fed
|
e43b920b4b
|
修订文档,Makefile,代码
令Makefile记录每次编译所用的 tag,这样用不同tag进行编译时,make可以感知到不同.
|
2022-05-05 18:10:22 +08:00 |
|
e1732a364fed
|
d245c25357
|
修订文档
|
2022-05-04 13:17:24 +08:00 |
|
e1732a364fed
|
7a94ee3599
|
修订代码,文档;实现grpcSimple的header匹配的response部分
|
2022-05-03 15:14:09 +08:00 |
|
e1732a364fed
|
bab6846c40
|
修订代码,示例;修复ws的headers配置有些情况下匹配错误的bug
之前发现ws的header只设置了request,没设置response部分,这次都添加上了
且添加了ws的服务端 对于 额外header的验证
|
2022-05-03 11:14:56 +08:00 |
|
e1732a364fed
|
b0496618de
|
修正代码, 令proxy protocol的回落可用。已经通过测试.
|
2022-05-02 21:40:13 +08:00 |
|
e1732a364fed
|
2e1c08514c
|
修订代码,示例; 支持回落使用PROXY protocol,但未经测试
|
2022-05-02 20:35:55 +08:00 |
|
e1732a364fed
|
1eb61606ac
|
修复fallback的一个bug,修订示例,文档,代码
在多个fallback存在时,若同时存在按path回落 和 不按path 回落的 [[fallback]] 项,则
无法回落到 不按path回落的 回落项 上面。
这是由于任意访问实际上都有path,所以至少都会查找path是否匹配,而默认回落的type被设置成了0,即没有任何类型,然后在匹配时因为是0所以匹配不到任意一项,所以是错误的
|
2022-05-02 18:31:21 +08:00 |
|
e1732a364fed
|
b5bbda0194
|
修订文档, 代码; 修改回落定义
为了支持 PROXY protocol, 需要添加Xver 数据
但是之前的结构并不包含此结构,所以要添加。
同时,还加一个 from字段用于指示某个fallback限制从某个特定server发出。
|
2022-05-02 17:15:40 +08:00 |
|
e1732a364fed
|
5bf0c8f3f0
|
修订文档
|
2022-05-02 14:31:58 +08:00 |
|
e1732a364fed
|
efb2ee0010
|
修订代码,文档, 示例
|
2022-05-01 09:32:00 +08:00 |
|
e1732a364fed
|
eb10bfc773
|
修订代码. 令grpcSimple 可以回落到http2
老代码只是回落到http1.1
实际上只有回落到 h2才不会被审查者察觉
|
2022-04-30 22:16:49 +08:00 |
|
e1732a364fed
|
af5a06b30d
|
修订代码; 将ws的回落检查从main.go 转移到ws包中
|
2022-04-30 12:28:18 +08:00 |
|
e1732a364fed
|
5aeb6092bf
|
修订代码,文档
|
2022-04-29 23:08:58 +08:00 |
|
hahafool
|
27872e7dfc
|
rename
|
2022-04-25 18:33:24 +08:00 |
|
hahafool
|
28279dfc31
|
更新文档, 代码
|
2022-04-21 17:05:41 +08:00 |
|
hahafool
|
64acfbccc3
|
修订代码,文档,Makefile; 适配quic到0.27;修缮ErrInErr输出
|
2022-04-19 08:29:46 +08:00 |
|
hahafool
|
6ecbfe7b18
|
修订文档;添加http伪装头;修复一个path的bug
http头配置同时 支持ws。添加相关的示例文件.
修复 path 为 "/" 时无法连接的bug, 这是因为原代码在 requestfilter.go中, bs[5] == ' ' 这个判断没有过滤 Get / http1.1 等类似的情况
将 filter.go 重命名为 requestfilter.go ,因为现在也产生了过滤response的可能性。
|
2022-04-18 21:59:46 +08:00 |
|
hahahrfool
|
d9f3b5d0e6
|
修订文档,代码;减少发布包编译的数量;修复“包头”变成“握手包”的漏洞
根据vless/trojan的协议标准,首包必须要包头和payload一起发送,而之前的vs架构分开发送了,这会导致可探测。已在本commit修复。
使用 captive.apple.com 和 http://www.msftconnecttest.com/connecttest.txt 作为测试url,而不用baidu和qq。这样在非中国国家进行测试 也可以正常了。
|
2022-04-16 22:25:37 +08:00 |
|
hahahrfool
|
dc16dba65d
|
修订文档; 将大部分Fatal的代码改为Error.
|
2022-04-07 18:18:14 +08:00 |
|