1
0
mirror of https://github.com/golang/go synced 2024-10-03 09:31:23 -06:00
The Go programming language
Go to file
Brad Fitzpatrick 752fec22bb net: add DialOpt, the extensible Dial w/ options dialer
Add DialOpt. So we have:

func Dial(net, addr string) (Conn, error)
func DialTimeout(net, addr string, timeout time.Duration) (Conn, error)
func DialOpt(addr string, opts ...DialOption) (Conn, error)

DialTimeout (and Dial) are regrettable in retrospect. Maybe
in a future Go we'll be back down to one Dial, with DialOpt
becoming Dial.

DialOpt looks like:

c, err := net.DialOpt("google.com:80")  // tcp is default
c, err := net.DialOpt("google.com:80", net.Timeout(30 * time.Second))
c, err := net.DialOpt("google.com:80", net.TCPFastOpen())
c, err := net.DialOpt("google.com:80", net.LocalAddr(..))
c, err := net.DialOpt("google.com:53", net.Network("udp6"))

And then: (clustered in godoc)

type DialOption interface { /* private only */ }
  func Deadline(time.Time) DialOption
  func LocalAddr(Addr) DialOption
  func Network(string) DialOption
  func TCPFastOpen() DialOption
  func Timeout(time.Duration) DialOption

I'm pretty confident we could add Happy Eyeballs to this too.

Fixes #3097
Update #3610
Update #4842

R=golang-dev, r, dave, minux.ma, rsc
CC=golang-dev
https://golang.org/cl/7365049
2013-02-27 11:59:36 -08:00
api api: refresh next.txt 2013-02-15 16:33:14 -05:00
doc doc: document that weekly.html is only a historical reference 2013-02-26 09:23:34 +11:00
include build: clang support 2013-02-15 13:37:43 -08:00
lib cmd/godoc: add support for display Notes parsed by pkg/go/doc 2013-02-25 20:34:09 -08:00
misc misc/emacs: Greatly improve go-mode for Emacs. 2013-02-26 13:48:32 -05:00
src net: add DialOpt, the extensible Dial w/ options dialer 2013-02-27 11:59:36 -08:00
test cmd/gc: accept cases with same value but different types in switch. 2013-02-26 00:45:43 +01:00
.hgignore build: update Makefile to track source code dependencies better 2012-03-13 03:31:11 +08:00
.hgtags tag go1.0.3 2012-09-24 13:15:33 -05:00
AUTHORS A+C: Dominik Honnef (individual CLA) 2013-02-26 10:27:02 -08:00
CONTRIBUTORS A+C: Dominik Honnef (individual CLA) 2013-02-26 10:27:02 -08:00
favicon.ico godoc: update favicon 2012-10-11 17:02:36 +11:00
LICENSE doc: update licensing text one more time 2012-03-27 15:09:13 +11:00
PATENTS LICENSE: separate, change PATENTS text 2010-12-06 16:31:59 -05:00
README build: update, streamline documentation for new $GOBIN 2010-08-24 20:00:50 -04:00
robots.txt godoc: serve robots.txt raw 2011-02-19 05:46:20 +11:00

This is the source code repository for the Go programming language.  

For documentation about how to install and use Go,
visit http://golang.org/ or load doc/install.html in your web browser.

After installing Go, you can view a nicely formatted
doc/install.html by running godoc --http=:6060
and then visiting http://localhost:6060/doc/install.html.

Unless otherwise noted, the Go source files are distributed
under the BSD-style license found in the LICENSE file.

--

Binary Distribution Notes

If you have just untarred a binary Go distribution, you need to set
the environment variable $GOROOT to the full path of the go
directory (the one containing this README).  You can omit the
variable if you unpack it into /usr/local/go, or if you rebuild
from sources by running all.bash (see doc/install.html).
You should also add the Go binary directory $GOROOT/bin
to your shell's path.

For example, if you extracted the tar file into $HOME/go, you might
put the following in your .profile:

    export GOROOT=$HOME/go
    export PATH=$PATH:$GOROOT/bin

See doc/install.html for more details.