Source file src/pkg/net/unixsock.go
1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Unix domain sockets 6 7 package net 8 9 // UnixAddr represents the address of a Unix domain socket end point. 10 type UnixAddr struct { 11 Name string 12 Net string 13 } 14 15 // Network returns the address's network name, "unix" or "unixgram". 16 func (a *UnixAddr) Network() string { 17 return a.Net 18 } 19 20 func (a *UnixAddr) String() string { 21 if a == nil { 22 return "<nil>" 23 } 24 return a.Name 25 } 26 27 func (a *UnixAddr) toAddr() Addr { 28 if a == nil { // nil *UnixAddr 29 return nil // nil interface 30 } 31 return a 32 } 33 34 // ResolveUnixAddr parses addr as a Unix domain socket address. 35 // The string net gives the network name, "unix", "unixgram" or 36 // "unixpacket". 37 func ResolveUnixAddr(net, addr string) (*UnixAddr, error) { 38 switch net { 39 case "unix": 40 case "unixpacket": 41 case "unixgram": 42 default: 43 return nil, UnknownNetworkError(net) 44 } 45 return &UnixAddr{addr, net}, nil 46 }