Skip to content

Commit d6d7c42

Browse files
committed
fix: dns
1 parent 6b14d49 commit d6d7c42

2 files changed

Lines changed: 28 additions & 24 deletions

File tree

.github/workflows/build.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,10 @@ jobs:
104104
- { os: windows, arch: amd64, legacy_win7: true, legacy_name: "windows-7" }
105105
- { os: windows, arch: "386", legacy_win7: true, legacy_name: "windows-7" }
106106

107-
- { os: android, arch: arm64, ndk: "aarch64-linux-android23" }
108-
- { os: android, arch: arm, ndk: "armv7a-linux-androideabi23" }
109-
- { os: android, arch: amd64, ndk: "x86_64-linux-android23" }
110-
- { os: android, arch: "386", ndk: "i686-linux-android23" }
107+
# - { os: android, arch: arm64, ndk: "aarch64-linux-android23" }
108+
# - { os: android, arch: arm, ndk: "armv7a-linux-androideabi23" }
109+
# - { os: android, arch: amd64, ndk: "x86_64-linux-android23" }
110+
# - { os: android, arch: "386", ndk: "i686-linux-android23" }
111111
steps:
112112
- name: Checkout
113113
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
@@ -140,22 +140,22 @@ jobs:
140140
run: |-
141141
echo "PATH=$HOME/go/go_win7/bin:$PATH" >> $GITHUB_ENV
142142
echo "GOROOT=$HOME/go/go_win7" >> $GITHUB_ENV
143-
- name: Setup Android NDK
144-
if: matrix.os == 'android'
145-
uses: nttld/setup-ndk@v1
146-
with:
147-
ndk-version: r28
148-
local-cache: true
149-
- name: Clone cronet-go
150-
if: matrix.naive
151-
run: |
152-
set -xeuo pipefail
153-
CRONET_GO_VERSION=$(cat .github/CRONET_GO_VERSION)
154-
git init ~/cronet-go
155-
git -C ~/cronet-go remote add origin https://github.com/sagernet/cronet-go.git
156-
git -C ~/cronet-go fetch --depth=1 origin "$CRONET_GO_VERSION"
157-
git -C ~/cronet-go checkout FETCH_HEAD
158-
git -C ~/cronet-go submodule update --init --recursive --depth=1
143+
# - name: Setup Android NDK
144+
# if: matrix.os == 'android'
145+
# uses: nttld/setup-ndk@v1
146+
# with:
147+
# ndk-version: r28
148+
# local-cache: true
149+
# - name: Clone cronet-go
150+
# if: matrix.naive
151+
# run: |
152+
# set -xeuo pipefail
153+
# CRONET_GO_VERSION=$(cat .github/CRONET_GO_VERSION)
154+
# git init ~/cronet-go
155+
# git -C ~/cronet-go remote add origin https://github.com/sagernet/cronet-go.git
156+
# git -C ~/cronet-go fetch --depth=1 origin "$CRONET_GO_VERSION"
157+
# git -C ~/cronet-go checkout FETCH_HEAD
158+
# git -C ~/cronet-go submodule update --init --recursive --depth=1
159159
- name: Cache Chromium toolchain
160160
if: matrix.naive
161161
id: cache-chromium-toolchain

dns/transport/multi/multi.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,17 @@ func (m *Transport) Exchange(ctx context.Context, msg *mDNS.Msg) (*mDNS.Msg, err
7878

7979
return m.exchangeParallel(ctx, msg)
8080
}
81-
func (m *Transport) exchangeSerial(ctx context.Context, msg *mDNS.Msg) (*mDNS.Msg, error) {
81+
func (m *Transport) exchangeSerial(parent context.Context, msg *mDNS.Msg) (*mDNS.Msg, error) {
82+
ctx, cancel := context.WithTimeout(parent, 10*time.Second)
83+
defer cancel()
8284
var lastErr error
8385
var lastResp *mDNS.Msg
8486

8587
for _, tr := range m.transports {
86-
if ctx.Err() != nil {
87-
break
88+
select {
89+
case <-ctx.Done():
90+
return nil, ctx.Err()
91+
default:
8892
}
8993

9094
resp, err := tr.Exchange(ctx, msg)
@@ -110,7 +114,7 @@ func (m *Transport) exchangeSerial(ctx context.Context, msg *mDNS.Msg) (*mDNS.Ms
110114
return nil, E.New("no dns response")
111115
}
112116
func (m *Transport) exchangeParallel(parent context.Context, msg *mDNS.Msg) (*mDNS.Msg, error) {
113-
ctx, cancel := context.WithTimeout(parent, 10*time.Second)
117+
ctx, cancel := context.WithTimeout(parent, 5*time.Second)
114118
defer cancel()
115119

116120
type result struct {

0 commit comments

Comments
 (0)