Skip to content

Commit 1c4b9a6

Browse files
committed
README/docs: Improved README, make golint happy
License: MIT Signed-off-by: Hector Sanjuan <[email protected]>
1 parent 1854460 commit 1c4b9a6

File tree

5 files changed

+57
-13
lines changed

5 files changed

+57
-13
lines changed

README.md

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
[![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats)
55
[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs)
66
[![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
7+
[![GoDoc](https://godoc.org/github.com/multiformats/go-multiaddr-net?status.svg)](https://godoc.org/github.com/multiformats/go-multiaddr-net)
78
[![Travis CI](https://img.shields.io/travis/multiformats/go-multiaddr-net.svg?style=flat-square&branch=master)](https://travis-ci.org/multiformats/go-multiaddr-net)
8-
[![codecov.io](https://img.shields.io/codecov/c/github/multiformats/go-multiaddr-net.svg?style=flat-square&branch=master)](https://codecov.io/github/multiformats/go-multiaddr-net?branch=master)
99

10-
> multiaddr net tools
10+
<!---[![codecov.io](https://img.shields.io/codecov/c/github/multiformats/go-multiaddr-net.svg?style=flat-square&branch=master)](https://codecov.io/github/multiformats/go-multiaddr-net?branch=master)--->
11+
12+
> Multiaddress net tools
1113
1214
This package provides [Multiaddr](https://github.com/multiformats/go-multiaddr) specific versions of common functions in [stdlib](https://github.com/golang/go/tree/master/src)'s `net` package. This means wrappers of standard net symbols like `net.Dial` and `net.Listen`, as well
1315
as conversion to and from `net.Addr`.
@@ -22,13 +24,32 @@ as conversion to and from `net.Addr`.
2224

2325
## Install
2426

27+
`go-multiaddr-net` is a standard Go module which can be installed with:
28+
2529
```sh
2630
go get github.com/multiformats/go-multiaddr-net
2731
```
2832

33+
Note that `go-multiaddr-net` is packaged with Gx, so it is recommended to use Gx to install and use it (see Usage section).
34+
35+
2936
## Usage
3037

31-
See the docs:
38+
This module is packaged with [Gx](https://github.com/whyrusleeping/gx). In order to use it in your own project do:
39+
40+
```sh
41+
go get -u github.com/whyrusleeping/gx
42+
go get -u github.com/whyrusleeping/gx-go
43+
cd <your-project-repository>
44+
gx init
45+
gx import github.com/multiformats/go-multiaddr-net
46+
gx install --global
47+
gx-go --rewrite
48+
```
49+
50+
Please check [Gx](https://github.com/whyrusleeping/gx) and [Gx-go](https://github.com/whyrusleeping/gx-go) documentation for more information.
51+
52+
For further usage, see the docs:
3253

3354
- `multiaddr/net`: https://godoc.org/github.com/multiformats/go-multiaddr-net
3455
- `multiaddr`: https://godoc.org/github.com/multiformats/go-multiaddr

convert.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ func FromNetAddr(a net.Addr) (ma.Multiaddr, error) {
1515
return defaultCodecs.FromNetAddr(a)
1616
}
1717

18+
// FromNetAddr converts a net.Addr to Multiaddress.
1819
func (cm *CodecMap) FromNetAddr(a net.Addr) (ma.Multiaddr, error) {
1920
if a == nil {
2021
return nil, fmt.Errorf("nil multiaddr")
@@ -34,6 +35,7 @@ func ToNetAddr(maddr ma.Multiaddr) (net.Addr, error) {
3435
return defaultCodecs.ToNetAddr(maddr)
3536
}
3637

38+
// ToNetAddr converts a Multiaddress to a standard net.Addr.
3739
func (cm *CodecMap) ToNetAddr(maddr ma.Multiaddr) (net.Addr, error) {
3840
protos := maddr.Protocols()
3941
final := protos[len(protos)-1]
@@ -105,7 +107,7 @@ func DialArgs(m ma.Multiaddr) (string, string, error) {
105107
return network, host, nil
106108
}
107109

108-
func parseTcpNetAddr(a net.Addr) (ma.Multiaddr, error) {
110+
func parseTCPNetAddr(a net.Addr) (ma.Multiaddr, error) {
109111
ac, ok := a.(*net.TCPAddr)
110112
if !ok {
111113
return nil, errIncorrectNetAddr
@@ -127,7 +129,7 @@ func parseTcpNetAddr(a net.Addr) (ma.Multiaddr, error) {
127129
return ipm.Encapsulate(tcpm), nil
128130
}
129131

130-
func parseUdpNetAddr(a net.Addr) (ma.Multiaddr, error) {
132+
func parseUDPNetAddr(a net.Addr) (ma.Multiaddr, error) {
131133
ac, ok := a.(*net.UDPAddr)
132134
if !ok {
133135
return nil, errIncorrectNetAddr
@@ -149,15 +151,15 @@ func parseUdpNetAddr(a net.Addr) (ma.Multiaddr, error) {
149151
return ipm.Encapsulate(udpm), nil
150152
}
151153

152-
func parseIpNetAddr(a net.Addr) (ma.Multiaddr, error) {
154+
func parseIPNetAddr(a net.Addr) (ma.Multiaddr, error) {
153155
ac, ok := a.(*net.IPAddr)
154156
if !ok {
155157
return nil, errIncorrectNetAddr
156158
}
157159
return FromIP(ac.IP)
158160
}
159161

160-
func parseIpPlusNetAddr(a net.Addr) (ma.Multiaddr, error) {
162+
func parseIPPlusNetAddr(a net.Addr) (ma.Multiaddr, error) {
161163
ac, ok := a.(*net.IPNet)
162164
if !ok {
163165
return nil, errIncorrectNetAddr

ip.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ func IsIPLoopback(m ma.Multiaddr) bool {
7070
return false
7171
}
7272

73-
// IP6 Link Local addresses are non routable. The prefix is technically
73+
// IsIP6LinkLocal returns if a multiaddress is an IPv6 local link. These
74+
// addresses are non routable. The prefix is technically
7475
// fe80::/10, but we test fe80::/16 for simplicity (no need to mask).
7576
// So far, no hardware interfaces exist long enough to use those 2 bits.
7677
// Send a PR if there is.

net.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
// Package manet provides Multiaddr
2+
// (https://github.com/multiformats/go-multiaddr) specific versions of common
3+
// functions in Go's standard `net` package. This means wrappers of standard
4+
// net symbols like `net.Dial` and `net.Listen`, as well as conversion to
5+
// and from `net.Addr`.
16
package manet
27

38
import (
@@ -90,6 +95,7 @@ func (d *Dialer) Dial(remote ma.Multiaddr) (Conn, error) {
9095
return d.DialContext(context.Background(), remote)
9196
}
9297

98+
// DialContext allows to provide a custom context to Dial().
9399
func (d *Dialer) DialContext(ctx context.Context, remote ma.Multiaddr) (Conn, error) {
94100
// if a LocalAddr is specified, use it on the embedded dialer.
95101
if d.LocalAddr != nil {

registry.go

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import (
88
ma "github.com/multiformats/go-multiaddr"
99
)
1010

11+
// FromNetAddrFunc is a generic function which converts a net.Addr to Multiaddress
1112
type FromNetAddrFunc func(a net.Addr) (ma.Multiaddr, error)
13+
14+
// ToNetAddrFunc is a generic function which converts a Multiaddress to net.Addr
1215
type ToNetAddrFunc func(ma ma.Multiaddr) (net.Addr, error)
1316

1417
var defaultCodecs *CodecMap
@@ -22,13 +25,18 @@ func init() {
2225
defaultCodecs.RegisterNetCodec(ipnetAddrSpec)
2326
}
2427

28+
// CodecMap holds a map of NetCodecs indexed by their Protocol ID
29+
// along with parsers for the addresses they use.
30+
// It is used to keep a list of supported network address codecs (protocols
31+
// which addresses can be converted to and from multiaddresses).
2532
type CodecMap struct {
2633
codecs map[string]*NetCodec
2734
addrParsers map[string]FromNetAddrFunc
2835
maddrParsers map[string]ToNetAddrFunc
2936
lk sync.Mutex
3037
}
3138

39+
// NewCodecMap initializes and returns a CodecMap object.
3240
func NewCodecMap() *CodecMap {
3341
return &CodecMap{
3442
codecs: make(map[string]*NetCodec),
@@ -37,6 +45,9 @@ func NewCodecMap() *CodecMap {
3745
}
3846
}
3947

48+
// NetCodec is used to identify a network codec, that is, a network type for
49+
// which we are able to translate multiaddresses into standard Go net.Addr
50+
// and back.
4051
type NetCodec struct {
4152
// NetAddrNetworks is an array of strings that may be returned
4253
// by net.Addr.Network() calls on addresses belonging to this type
@@ -55,10 +66,13 @@ type NetCodec struct {
5566
Protocol ma.Protocol
5667
}
5768

69+
// RegisterNetCodec adds a new NetCodec to the default codecs.
5870
func RegisterNetCodec(a *NetCodec) {
5971
defaultCodecs.RegisterNetCodec(a)
6072
}
6173

74+
// RegisterNetCodec adds a new NetCodec to the CodecMap. This function is
75+
// thread safe.
6276
func (cm *CodecMap) RegisterNetCodec(a *NetCodec) {
6377
cm.lk.Lock()
6478
defer cm.lk.Unlock()
@@ -73,35 +87,35 @@ func (cm *CodecMap) RegisterNetCodec(a *NetCodec) {
7387
var tcpAddrSpec = &NetCodec{
7488
ProtocolName: "tcp",
7589
NetAddrNetworks: []string{"tcp", "tcp4", "tcp6"},
76-
ParseNetAddr: parseTcpNetAddr,
90+
ParseNetAddr: parseTCPNetAddr,
7791
ConvertMultiaddr: parseBasicNetMaddr,
7892
}
7993

8094
var udpAddrSpec = &NetCodec{
8195
ProtocolName: "udp",
8296
NetAddrNetworks: []string{"udp", "udp4", "udp6"},
83-
ParseNetAddr: parseUdpNetAddr,
97+
ParseNetAddr: parseUDPNetAddr,
8498
ConvertMultiaddr: parseBasicNetMaddr,
8599
}
86100

87101
var ip4AddrSpec = &NetCodec{
88102
ProtocolName: "ip4",
89103
NetAddrNetworks: []string{"ip4"},
90-
ParseNetAddr: parseIpNetAddr,
104+
ParseNetAddr: parseIPNetAddr,
91105
ConvertMultiaddr: parseBasicNetMaddr,
92106
}
93107

94108
var ip6AddrSpec = &NetCodec{
95109
ProtocolName: "ip6",
96110
NetAddrNetworks: []string{"ip6"},
97-
ParseNetAddr: parseIpNetAddr,
111+
ParseNetAddr: parseIPNetAddr,
98112
ConvertMultiaddr: parseBasicNetMaddr,
99113
}
100114

101115
var ipnetAddrSpec = &NetCodec{
102116
ProtocolName: "ip+net",
103117
NetAddrNetworks: []string{"ip+net"},
104-
ParseNetAddr: parseIpPlusNetAddr,
118+
ParseNetAddr: parseIPPlusNetAddr,
105119
ConvertMultiaddr: func(ma.Multiaddr) (net.Addr, error) {
106120
return nil, fmt.Errorf("converting ip+net multiaddr not supported")
107121
},

0 commit comments

Comments
 (0)