Retro68/gcc/libgo/go/net/unixsock.go

48 lines
1.0 KiB
Go
Raw Normal View History

2012-03-27 23:13:14 +00:00
// 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
}
2014-09-21 17:33:12 +00:00
// Network returns the address's network name, "unix", "unixgram" or
// "unixpacket".
2012-03-27 23:13:14 +00:00
func (a *UnixAddr) Network() string {
return a.Net
}
func (a *UnixAddr) String() string {
if a == nil {
return "<nil>"
}
return a.Name
}
2017-04-10 11:32:00 +00:00
func (a *UnixAddr) isWildcard() bool {
return a == nil || a.Name == ""
}
func (a *UnixAddr) opAddr() Addr {
2014-09-21 17:33:12 +00:00
if a == nil {
return nil
2012-03-27 23:13:14 +00:00
}
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 {
2014-09-21 17:33:12 +00:00
case "unix", "unixgram", "unixpacket":
return &UnixAddr{Name: addr, Net: net}, nil
2012-03-27 23:13:14 +00:00
default:
return nil, UnknownNetworkError(net)
}
}