Diving-Fish / maimaidx-prober

舞萌 DX 查分器
https://www.diving-fish.com/maimaidx/prober
MIT License
711 stars 53 forks source link

在Termux上使用时发生错误 #62

Open WhitePr opened 1 year ago

WhitePr commented 1 year ago

使用main分支进行的编译 go 版本为 go1.20 android/arm64 下面是错误日志

2023/04/01 18:45:44 http: panic serving 127.0.0.1:44576: runtime error: index out of range [0] with length 0
goroutine 50 [running]:
net/http.(*conn).serve.func1()
        /data/data/com.termux/files/usr/lib/go/src/net/http/server.go:1854 +0xb0
panic({0x5a34eb90c0, 0x400001a138})
        /data/data/com.termux/files/usr/lib/go/src/runtime/panic.go:890 +0x248
github.com/elazarl/goproxy.signHost({{0x0, 0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0, 0x0}, {0x0, 0x0, ...}, ...}, ...)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20210110162100-a92cc753f88e/signer.go:44 +0x8b8
github.com/elazarl/goproxy.TLSConfigFromCA.func1.1(...)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20210110162100-a92cc753f88e/https.go:434
github.com/elazarl/goproxy.TLSConfigFromCA.func1({0x4000020207, 0x17}, 0x400007a360)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20210110162100-a92cc753f88e/https.go:439 +0x208
github.com/elazarl/goproxy.(*ProxyHttpServer).handleHttps(0x4000504000, {0x5a34ed8b00?, 0x40005240e0}, 0x40004a4000)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20210110162100-a92cc753f88e/https.go:184 +0x3d8
github.com/elazarl/goproxy.(*ProxyHttpServer).ServeHTTP(0x0?, {0x5a34ed8b00?, 0x40005240e0?}, 0x5a34e04ff8?)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20210110162100-a92cc753f88e/proxy.go:114 +0xb0
net/http.serverHandler.ServeHTTP({0x4000490090?}, {0x5a34ed8b00, 0x40005240e0}, 0x40004a4000)
        /data/data/com.termux/files/usr/lib/go/src/net/http/server.go:2936 +0x2c0
net/http.(*conn).serve(0x4000494000, {0x5a34ed8d28, 0x400007c210})
        /data/data/com.termux/files/usr/lib/go/src/net/http/server.go:1995 +0x518
created by net/http.(*Server).Serve
        /data/data/com.termux/files/usr/lib/go/src/net/http/server.go:3089 +0x4e8
WhitePr commented 1 year ago

仔细看了下log 应该是goproxy的问题 但看了下你的依赖是2021年1月10号的版本 最新的提交是2022年10月16 不知道更新版本会不会修复这个问题

Diving-Fish commented 1 year ago

我这边没有linux的环境,你要不本地改下依赖,sync package 再编译看看?

WhitePr commented 1 year ago

我这边没有linux的环境,你要不本地改下依赖,sync package 再编译看看?

更新后还是存在

2023/04/03 02:37:04 http: panic serving 127.0.0.1:49932: runtime error: index out of range [0] with length 0
goroutine 58 [running]:
net/http.(*conn).serve.func1()
        /data/data/com.termux/files/usr/lib/go/src/net/http/server.go:1854 +0xb0
panic({0x623785eb20, 0x400001a150})
        /data/data/com.termux/files/usr/lib/go/src/runtime/panic.go:890 +0x248
github.com/elazarl/goproxy.signHost({{0x0, 0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0, 0x0}, {0x0, 0x0, ...}, ...}, ...)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20221015165544-a0805db90819/signer.go:44 +0x8f8
github.com/elazarl/goproxy.TLSConfigFromCA.func1.1(...)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20221015165544-a0805db90819/https.go:465
github.com/elazarl/goproxy.TLSConfigFromCA.func1({0x4000020367, 0x15}, 0x400007a780)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20221015165544-a0805db90819/https.go:470 +0x1c4
github.com/elazarl/goproxy.(*ProxyHttpServer).handleHttps(0x40003940b0, {0x623787eae0?, 0x40003ae380}, 0x40003aa800)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20221015165544-a0805db90819/https.go:205 +0x3d8
github.com/elazarl/goproxy.(*ProxyHttpServer).ServeHTTP(0x0?, {0x623787eae0?, 0x40003ae380?}, 0x62377a84e8?)
        /data/data/com.termux/files/home/go/pkg/mod/github.com/elazarl/goproxy@v0.0.0-20221015165544-a0805db90819/proxy.go:129 +0xb0
net/http.serverHandler.ServeHTTP({0x4000382f60?}, {0x623787eae0, 0x40003ae380}, 0x40003aa800)
        /data/data/com.termux/files/usr/lib/go/src/net/http/server.go:2936 +0x2c0
net/http.(*conn).serve(0x4000386d80, {0x623787ed08, 0x40003822d0})
        /data/data/com.termux/files/usr/lib/go/src/net/http/server.go:1995 +0x518
created by net/http.(*Server).Serve
        /data/data/com.termux/files/usr/lib/go/src/net/http/server.go:3089 +0x4e8
xen0n commented 1 year ago

https://github.com/elazarl/goproxy/blob/master/signer.go#L44

ca.Certificate[0] 这个地方死的,说明你的环境 ca.Certificate 没东西

要么你没装 ca-certificates 或者等效的包,要么 CA 相关的逻辑在 GOOS=android 需要单独适配

SherkeyXD commented 8 months ago

可以试试用 proot-distro 起一个完整的 linux 环境(