File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed
Android/app/src/go/intra/split Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -314,6 +314,7 @@ func (r *retrier) Write(b []byte) (int, error) {
314
314
r .conn .SetReadDeadline (time .Now ().Add (r .timeout ))
315
315
}
316
316
r .mutex .Unlock ()
317
+
317
318
if attempted {
318
319
if err == nil {
319
320
return n , nil
@@ -322,11 +323,19 @@ func (r *retrier) Write(b []byte) (int, error) {
322
323
// by the retry procedure. Block until we have a final socket (which will
323
324
// already have replayed b[:n]), and retry.
324
325
<- r .retryCompleteFlag
326
+
325
327
r .mutex .Lock ()
326
328
c := r .conn
327
329
r .mutex .Unlock ()
328
- m , err := c .Write (b [n :])
329
- return n + m , err
330
+
331
+ // zero len writes are no-ops, but Quad9 servers
332
+ // are observed to respond better when these are skipped.
333
+ if buf := b [n :]; len (buf ) > 0 {
334
+ m , e := c .Write (buf )
335
+ n += m
336
+ err = e
337
+ }
338
+ return n , err
330
339
}
331
340
}
332
341
You can’t perform that action at this time.
0 commit comments