517 Commits

Author SHA1 Message Date
Steven Allen
201fa11a96
Merge pull request #64 from willscott/feat/toip
add ToIP to complement ToNetAddr
2020-02-26 11:46:32 -08:00
Will Scott
9a640fd884
add ToIP to complement ToNetAddr
The specific implementations of net.Addr are internal implementation
details of this package, and a downstream consumner shouldn't relay on
the internal use of net.IPAddr / net.TCPAddr to implement that interface
for direct extraction of IP. The consumer would instead need to go through
a round of string conversion to retreive IP safely. Adding an IP extraction
function to the interface here will allow the IP to be retreived more
efficiently.
2020-02-26 10:50:47 -08:00
Steven Allen
07114b1ba0
feat: add support for /dns in DialArgs (#63) 2020-02-05 18:13:14 +00:00
Steven Allen
41a8e2e768
Merge pull request #121 from multiformats/dependabot/go_modules/github.com/multiformats/go-multihash-0.0.13
Bump github.com/multiformats/go-multihash from 0.0.10 to 0.0.13
2020-02-04 09:46:58 -08:00
dependabot-preview[bot]
57dbdc32ad
Bump github.com/multiformats/go-multihash from 0.0.10 to 0.0.13
Bumps [github.com/multiformats/go-multihash](https://github.com/multiformats/go-multihash) from 0.0.10 to 0.0.13.
- [Release notes](https://github.com/multiformats/go-multihash/releases)
- [Commits](https://github.com/multiformats/go-multihash/compare/v0.0.10...v0.0.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-04 11:19:36 +00:00
Steven Allen
d3472d6fa6
Merge pull request #119 from multiformats/dependabot/go_modules/github.com/multiformats/go-varint-0.0.2
Bump github.com/multiformats/go-varint from 0.0.1 to 0.0.2
2020-01-29 14:29:27 -08:00
dependabot-preview[bot]
afddcded5f
Bump github.com/multiformats/go-varint from 0.0.1 to 0.0.2
Bumps [github.com/multiformats/go-varint](https://github.com/multiformats/go-varint) from 0.0.1 to 0.0.2.
- [Release notes](https://github.com/multiformats/go-varint/releases)
- [Commits](https://github.com/multiformats/go-varint/compare/v0.0.1...v0.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-29 05:58:13 +00:00
Steven Allen
24cbc341c9
Merge pull request #118 from multiformats/dependabot/go_modules/github.com/multiformats/go-multihash-0.0.10
Bump github.com/multiformats/go-multihash from 0.0.8 to 0.0.10
2020-01-28 21:56:57 -08:00
Steven Allen
d6d94242ca
Merge pull request #62 from multiformats/dependabot/go_modules/github.com/multiformats/go-multiaddr-0.2.0
Bump github.com/multiformats/go-multiaddr from 0.1.0 to 0.2.0
2020-01-28 21:55:24 -08:00
dependabot-preview[bot]
6164f8a9e3
Bump github.com/multiformats/go-multiaddr from 0.1.0 to 0.2.0
Bumps [github.com/multiformats/go-multiaddr](https://github.com/multiformats/go-multiaddr) from 0.1.0 to 0.2.0.
- [Release notes](https://github.com/multiformats/go-multiaddr/releases)
- [Commits](https://github.com/multiformats/go-multiaddr/compare/v0.1.0...v0.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-29 05:52:53 +00:00
dependabot-preview[bot]
3fdfdec192
Bump github.com/multiformats/go-multihash from 0.0.8 to 0.0.10
Bumps [github.com/multiformats/go-multihash](https://github.com/multiformats/go-multihash) from 0.0.8 to 0.0.10.
- [Release notes](https://github.com/multiformats/go-multihash/releases)
- [Commits](https://github.com/multiformats/go-multihash/compare/v0.0.8...v0.0.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-29 05:52:47 +00:00
Steven Allen
8c6cee15b3
Merge pull request #115 from multiformats/feat/p2p-by-default
feat: switch to /p2p multiaddrs by default
2019-12-10 16:20:53 +01:00
Steven Allen
8f388501b1
Merge pull request #116 from aratz-lasa/patch-1
Validate bytes when parsing string
2019-12-09 22:11:29 +01:00
Aratz M. Lasa
b00b4ac894 Documented Transcoder functions, and fixed ip6zone string validation
Documented Transcoder functions, and fixed ip6zone string validation
2019-12-09 23:00:42 +01:00
bigs
64e3415480
Merge pull request #112 from multiformats/fix/deterministic
fix: minimal varint decoding
2019-11-06 13:36:06 -05:00
Steven Allen
438f18c3f9 feat: switch to /p2p multiaddrs by default 2019-11-01 14:22:21 -07:00
Steven Allen
c9acf9f27c
Merge pull request #60 from multiformats/feat/test-unix
test: test unix addrs
2019-09-30 07:54:09 -07:00
Dominic Della Valle
2646b1d6f3 fix unescaped back-slash target 2019-09-28 16:18:46 -04:00
Steven Allen
611d2a4f64 address CR 2019-09-27 17:41:20 -07:00
Steven Allen
8af58b283a fix: minimal varint decoding
* Enforce minimal varint encoding when decoding multiaddrs.
* Ensure codecs fit in 32bit integers for compatibility. We can increase the
size, but we'd need to change the `Protocol.Codec` type from `int` to `uint64`.
2019-09-19 14:43:22 -07:00
Steven Allen
bdd6dd165d chore: use pre-encoded codec 2019-09-19 14:37:06 -07:00
Steven Allen
d66032c340 fix unix path handling on windows
* Convert to windows paths when converting from a multiaddr to a net.Addr
* Convert from windows paths when converting from a net.Addr to a multiaddr

Also, don't "clean". `filepath.Clean` is _usually_ correct but not _technically_
correct in all cases. We should leave cleaning to the application.
2019-09-19 08:59:17 -07:00
Steven Allen
f96df18bf0
Merge pull request #113 from multiformats/feat/dns
feat: add dns support
2019-09-18 17:19:38 -07:00
Steven Allen
a088a4a5ef feat: add dns support
This is a defacto standard and is used by js-libp2p.

Ported from https://github.com/multiformats/go-multiaddr-dns/pull/17.
This was decided in https://github.com/multiformats/multiaddr/issues/22.
2019-09-18 17:13:14 -07:00
Steven Allen
1b2246d7be test: test unix addrs 2019-09-18 17:07:27 -07:00
Steven Allen
a5c136c974
Merge pull request #61 from multiformats/fix/global-multiaddr-registry
fix: use global multiaddr definitions
2019-09-18 17:01:31 -07:00
Steven Allen
de67c9ba29 remove gx support 2019-09-18 16:59:15 -07:00
Steven Allen
abe95b8d2e fix: use global multiaddr definitions
So we don't have to import a DNS resolver just to parse dns multiaddrs.
2019-09-18 16:53:12 -07:00
Steven Allen
37eceece4d
Merge pull request #111 from godcong/master
fix https://github.com/multiformats/go-multiaddr/issues/108
2019-09-18 16:45:23 -07:00
godcong
bbcf5cbbc5 move dns protocol definitions (3974bf3f84/dns.go (L11)) 2019-09-18 14:19:59 +08:00
godcong
0550a5ba36 move ws protocol definitions (ec8d1818a2/websocket.go (L23)) 2019-09-18 14:07:40 +08:00
godcong
c80d054253 move protocol definitions (https://github.com/libp2p/go-libp2p-circuit/blob/master/transport.go#L13-L24) 2019-09-18 13:53:31 +08:00
Steven Allen
60a59169e3
Merge pull request #59 from multiformats/fix/remove-gx
fix: remove gx support
2019-08-12 08:49:48 -07:00
Steven Allen
bd7c2ab520 fix: remove gx support 2019-08-12 08:47:55 -07:00
Steven Allen
082ac9ffc3
Merge pull request #58 from skillful-alex/fix-issue-57--Build-broken-after-36
resolve #57 "Build broken after #36"
2019-08-12 08:45:39 -07:00
skillful-alex
4d82298a97 remove unused var _ Conn = (*maConn)(nil) 2019-08-11 14:34:10 +03:00
Steven Allen
694239868b
Merge pull request #36 from multiformats/feat/udp
Make PacketConn more idiomatic and direct
2019-08-09 17:18:50 -07:00
Steven Allen
5b1de2f51f
Merge pull request #105 from multiformats/feat/no-empty-multiadd
forbid empty multiaddrs
2019-05-20 14:28:00 -07:00
Steven Allen
020c4d1741 test: empty multiaddr 2019-05-20 12:28:10 -07:00
Steven Allen
e3951368fb forbid empty multiaddrs
fixes #104
2019-05-20 12:23:28 -07:00
Steven Allen
fddba8703e
Merge pull request #103 from multiformats/feat/parse-error
improve parse error
2019-05-17 11:11:32 -07:00
Steven Allen
86a587ec70 improve parse error
This includes the bad multiaddr in the error and should improve UX (see
https://github.com/ipfs/go-ipfs/issues/4190).
2019-05-17 11:11:17 -07:00
Lars Gierth
e1825f7b50
Merge pull request #99 from multiformats/feat/bin
Add conformance testing
2019-04-19 06:00:26 +02:00
Lars Gierth
2df5aa6906 ci: remove gx from build matrix 2019-04-19 05:57:14 +02:00
Lars Gierth
e791f319f0 Add conformance testing
This patch adds a go-multiaddr CLI to aid in testing this
implementation of multiaddr. It takes a multiaddr in string or
packed form as input, and prints detailed information about the
multiaddr. This tool can be useful beyond testing, of course.

Another addition is a Makefile target for running the new
multiaddr conformance test suite. This test suite lives at
https://github.com/multiformats/multiaddr and is fetched to be
run against our new go-multiaddr CLI. This target is to be run in CI

Neither the test suite nor the CLI are complete yet.

Currently the output looks like this:

```
> go run ./multiaddr /ip4/192.0.2.42/tcp/443 | jq .
{
  "string": "/ip4/192.0.2.42/tcp/443",
  "stringSize": "23",
  "packed": "0x04c000022a0601bb",
  "packedSize": "8",
  "components": [
    {
      "string": "/ip4/192.0.2.42",
      "stringSize": "15",
      "packed": "0x04c000022a",
      "packedSize": "5",
      "value": "192.0.2.42",
      "rawValue": "0xc000022a",
      "valueSize": "4",
      "protocol": "ip4",
      "codec": "4",
      "uvarint": "0x04",
      "lengthPrefix": ""
    },
    {
      "string": "/tcp/443",
      "stringSize": "8",
      "packed": "0x0601bb",
      "packedSize": "3",
      "value": "443",
      "rawValue": "0x01bb",
      "valueSize": "2",
      "protocol": "tcp",
      "codec": "6",
      "uvarint": "0x06",
      "lengthPrefix": ""
    }
  ]
}
```

And the Makefile target:

```
> make conformance
go get -d -v .
go build -o tmp/multiaddr/test/go-multiaddr ./multiaddr
cd tmp/multiaddr/test && MULTIADDR_BIN="./go-multiaddr" go test -v
=== RUN   TestGodog
MULTIADDR_BIN="./go-multiaddr"
Feature: Multiaddr

  Scenario: Banana                              # multiaddr.feature:3
    Given the multiaddr /ip4/192.0.2.42/tcp/443 # main_test.go:81 -> github.com/multiformats/multiaddr/test_test.theMultiaddr
    Then the packed form is 0x04c000022a0601bb  # main_test.go:98 -> github.com/multiformats/multiaddr/test_test.thePackedFormIs
    And the packed size is 8 bytes              # main_test.go:105 -> github.com/multiformats/multiaddr/test_test.thePackedSizeIs
    And the components are:                     # main_test.go:126 -> github.com/multiformats/multiaddr/test_test.theComponentsAre
      | string          | stringSize | packed       | packedSize | value      | valueSize | protocol | codec | uvarint | lengthPrefix | rawValue   |
      | /ip4/192.0.2.42 | 15         | 0x04c000022a | 5          | 192.0.2.42 | 4         | ip4      | 4     | 0x04    |              | 0xc000022a |
      | /tcp/443        | 8          | 0x0601bb     | 3          | 443        | 2         | tcp      | 6     | 0x06    |              | 0x01bb     |

  Scenario: Banana #2                               # multiaddr.feature:12
    Given the multiaddr 0x04c000022a0601bb          # main_test.go:81 -> github.com/multiformats/multiaddr/test_test.theMultiaddr
    Then the string form is /ip4/192.0.2.42/tcp/443 # main_test.go:112 -> github.com/multiformats/multiaddr/test_test.theStringFormIs
    And the string size is 23 bytes                 # main_test.go:119 -> github.com/multiformats/multiaddr/test_test.theStringSizeIs
    And the components are:                         # main_test.go:126 -> github.com/multiformats/multiaddr/test_test.theComponentsAre
      | string          | stringSize | packed       | packedSize | value      | valueSize | protocol | codec | uvarint | lengthPrefix | rawValue   |
      | /ip4/192.0.2.42 | 15         | 0x04c000022a | 5          | 192.0.2.42 | 4         | ip4      | 4     | 0x04    |              | 0xc000022a |
      | /tcp/443        | 8          | 0x0601bb     | 3          | 443        | 2         | tcp      | 6     | 0x06    |              | 0x01bb     |

2 scenarios (2 passed)
8 steps (8 passed)
3.187755ms
--- PASS: TestGodog (0.00s)
PASS
ok  	github.com/multiformats/multiaddr/test	0.012s
```
2019-04-19 05:15:55 +02:00
Steven Allen
0460aad0fe
Merge pull request #101 from RTradeLtd/base33
I2P Base32 and Base32 for Encrypted Leasesets multiaddr, tiny garlic64 fix
2019-04-06 08:51:44 -07:00
idk
84811f919b don't use a function to guarantee correct padding 2019-04-05 23:41:37 -04:00
idk
477514c812 Add comments to garlic64 addresses and use the validator 2019-04-05 21:40:25 -04:00
idk
ebd6de6a8b fix the padding 2019-04-05 21:26:31 -04:00
idk
42839924e7 Improve the validator 2019-04-05 21:09:48 -04:00