@@ -211,14 +211,6 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
211
211
212
212
</ dl > <!-- crypto/rc4 -->
213
213
214
- < dl id ="crypto/tls, net/http "> < dt > < a href ="/pkg/crypto/tls, net/http/ "> crypto/tls, net/http</ a > </ dt >
215
- < dd >
216
- < p > <!-- CL 143177 -->
217
- TODO: < a href ="https://golang.org/cl/143177 "> https://golang.org/cl/143177</ a > : reject HTTP requests to HTTPS server
218
- </ p >
219
-
220
- </ dl > <!-- crypto/tls, net/http -->
221
-
222
214
< dl id ="database/sql "> < dt > < a href ="/pkg/database/sql/ "> database/sql</ a > </ dt >
223
215
< dd >
224
216
< p > <!-- CL 145738 -->
@@ -337,48 +329,72 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
337
329
338
330
< dl id ="net "> < dt > < a href ="/pkg/net/ "> net</ a > </ dt >
339
331
< dd >
340
- < p > <!-- CL 113997 -->
341
- TODO: < a href ="https://golang.org/cl/113997 "> https://golang.org/cl/113997</ a > : use splice(2) on Linux when reading from UnixConn, rework splice tests
342
- </ p >
343
-
344
332
< p > <!-- CL 146659 -->
345
- TODO: < a href ="https://golang.org/cl/146659 "> https://golang.org/cl/146659</ a > : enable RFC 6555 Fast Fallback by default
333
+ The
334
+ < a href ="/pkg/net/#Dialer.DualStack "> < code > Dialer.DualStack</ code > </ a > setting is now ignored and deprecated;
335
+ RFC 6555 Fast Fallback ("Happy Eyeballs") is now enabled by default. To disable, set
336
+ < a href ="/pkg/net/#Dialer.FallbackDelay "> < code > Dialer.FallbackDelay</ code > </ a > to a negative value.
346
337
</ p >
347
338
348
339
< p > <!-- CL 107196 -->
349
- TODO: < a href ="https://golang.org/cl/107196 "> https://golang.org/cl/107196</ a > : enable TCP keepalives by default
340
+ Similarly, TCP keep-alives are now enabled by default if
341
+ < a href ="/pkg/net/#Dialer.KeepAlive "> < code > Dialer.KeepAlive</ code > </ a > is zero.
342
+ To disable, set it to a negative value.
350
343
</ p >
351
344
345
+ < p > <!-- CL 113997 -->
346
+ On Linux, the < a href ="http://man7.org/linux/man-pages/man2/splice.2.html "> < code > splice</ code > system call</ a > is now used when copying from a
347
+ < a href ="/pkg/net/#UnixConn "> < code > UnixConn</ code > </ a > to a
348
+ < a href ="/pkg/net/#TCPConn "> < code > TCPConn</ code > </ a > .
349
+ </ p >
352
350
</ dl > <!-- net -->
353
351
354
352
< dl id ="net/http "> < dt > < a href ="/pkg/net/http/ "> net/http</ a > </ dt >
355
353
< dd >
354
+ < p > <!-- CL 143177 -->
355
+ The HTTP server now rejects misdirected HTTP requests to HTTPS servers with a plaintext "400 Bad Request" response.
356
+ </ p >
357
+
356
358
< p > <!-- CL 130115 -->
357
- TODO: < a href ="https://golang.org/cl/130115 "> https://golang.org/cl/130115</ a > : add Client.CloseIdleConnections
359
+ The new < a href ="/pkg/net/http/#Client.CloseIdleConnections "> < code > Client.CloseIdleConnections</ code > </ a >
360
+ method calls the < code > Client</ code > 's underlying < code > Transport</ code > 's < code > CloseIdleConnections</ code >
361
+ if it has one.
358
362
</ p >
359
363
360
364
< p > <!-- CL 145398 -->
361
- TODO: < a href ="https://golang.org/cl/145398 "> https://golang.org/cl/145398</ a > : in Transport, don't error on non-chunked response with Trailer header
365
+ The < a href ="/pkg/net/http/#Transport "> < code > Transport</ code > </ a > no longer rejects HTTP responses which declare
366
+ HTTP Trailers but don't use chunked encoding. Instead, the declared trailers are now just ignored.
362
367
</ p >
363
368
364
- < p > <!-- CL 152080 -->
365
- TODO: < a href ="https://golang.org/cl/152080 "> https://golang.org/cl/152080</ a > : update bundled x/net/http2
369
+ < p > <!-- CL 152080 --> <!-- CL 151857 -->
370
+ The < a href ="/pkg/net/http/#Transport "> < code > Transport</ code > </ a > no longer handles < code > MAX_CONCURRENT_STREAMS</ code > values
371
+ advertised from HTTP/2 servers as strictly as it did during Go 1.10 and Go 1.11. The default behavior is now back
372
+ to how it was in Go 1.9: each connection to a server can have up to < code > MAX_CONCURRENT_STREAMS</ code > requests
373
+ active and then new TCP connections are created as needed. In Go 1.10 and Go 1.11 the < code > http2</ code > package
374
+ would block and wait for requests to finish instead of creating new connections.
375
+ To get the stricter behavior back, import the
376
+ < a href ="https://godoc.org/golang.org/x/net/http2 "> < code > golang.org/x/net/http2</ code > </ a > package
377
+ directly and set
378
+ < a href ="https://godoc.org/golang.org/x/net/http2#Transport.StrictMaxConcurrentStreams "> < code > Transport.StrictMaxConcurrentStreams</ code > </ a > to
379
+ < code > true</ code > .
366
380
</ p >
367
381
368
382
</ dl > <!-- net/http -->
369
383
370
384
< dl id ="net/http/httputil "> < dt > < a href ="/pkg/net/http/httputil/ "> net/http/httputil</ a > </ dt >
371
385
< dd >
372
386
< p > <!-- CL 146437 -->
373
- TODO: < a href ="https://golang.org/cl/146437 "> https://golang.org/cl/146437</ a > : make ReverseProxy automatically proxy WebSocket requests
387
+ The < a href ="/pkg/net/http/httputil/#ReverseProxy "> < code > ReverseProxy</ code > </ a > now automatically
388
+ proxies WebSocket requests.
374
389
</ p >
375
390
376
391
</ dl > <!-- net/http/httputil -->
377
392
378
393
< dl id ="os "> < dt > < a href ="/pkg/os/ "> os</ a > </ dt >
379
394
< dd >
380
395
< p > <!-- CL 125443 -->
381
- TODO: < a href ="https://golang.org/cl/125443 "> https://golang.org/cl/125443</ a > : add ExitCode method to ProcessState
396
+ The new < a href ="/pkg/os/#ProcessState.ExitCode "> < code > ProcessState.ExitCode</ code > </ a > method
397
+ returns the process's exit code.
382
398
</ p >
383
399
384
400
< p > <!-- CL 135075 -->
@@ -442,7 +458,7 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
442
458
< dl id ="strings "> < dt > < a href ="/pkg/strings/ "> strings</ a > </ dt >
443
459
< dd >
444
460
< p > <!-- CL 122835 -->
445
- TODO: < a href ="https://golang.org/cl/122835 " > https://golang.org/cl/122835 </ a > : add Builder.Cap
461
+ The new < a href ="/pkg/strings/#Builder.Cap " > < code > Builder.Cap </ code > </ a > method returns the capacity of the builder's underlying byte slice.
446
462
</ p >
447
463
448
464
< p > <!-- CL 131495 -->
0 commit comments