mirror of
https://github.com/golang/go
synced 2024-10-05 18:31:28 -06:00
3c6558ad90
This CL adds the netaddr interface that will carry a single network endpoint address or a short list of IP addresses to dial helper functions in the upcoming CLs. This is in preparation for TCP connection setup with fast failover on dual IP stack node as described in RFC 6555. Update #3610 Update #5267 R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/13368044
44 lines
965 B
Go
44 lines
965 B
Go
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package net
|
|
|
|
// UnixAddr represents the address of a Unix domain socket end point.
|
|
type UnixAddr struct {
|
|
Name string
|
|
Net string
|
|
}
|
|
|
|
// Network returns the address's network name, "unix", "unixgram" or
|
|
// "unixpacket".
|
|
func (a *UnixAddr) Network() string {
|
|
return a.Net
|
|
}
|
|
|
|
func (a *UnixAddr) String() string {
|
|
if a == nil {
|
|
return "<nil>"
|
|
}
|
|
return a.Name
|
|
}
|
|
|
|
func (a *UnixAddr) toAddr() Addr {
|
|
if a == nil {
|
|
return nil
|
|
}
|
|
return a
|
|
}
|
|
|
|
// ResolveUnixAddr parses addr as a Unix domain socket address.
|
|
// The string net gives the network name, "unix", "unixgram" or
|
|
// "unixpacket".
|
|
func ResolveUnixAddr(net, addr string) (*UnixAddr, error) {
|
|
switch net {
|
|
case "unix", "unixgram", "unixpacket":
|
|
return &UnixAddr{Name: addr, Net: net}, nil
|
|
default:
|
|
return nil, UnknownNetworkError(net)
|
|
}
|
|
}
|