// Dial connects to a particular peer, over a given network // Example: Dial("udp", peer) func Dial(network string, peer *peer.Peer) (*Conn, error) { addr := peer.NetAddress(network) if addr == nil { return nil, fmt.Errorf("No address for network %s", network) } network, host, err := addr.DialArgs() if err != nil { return nil, err } nconn, err := net.Dial(network, host) if err != nil { return nil, err } conn := &Conn{ Peer: peer, Addr: addr, Conn: nconn, } newConnChans(conn) return conn, nil }