Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
go-libp2p
Commits
200d7a87
Commit
200d7a87
authored
Apr 06, 2016
by
Jeromy
Browse files
add multistream select to select which crypto to use
parent
c7cc7482
Changes
2
Hide whitespace changes
Inline
Side-by-side
p2p/net/conn/dial.go
View file @
200d7a87
...
@@ -10,6 +10,7 @@ import (
...
@@ -10,6 +10,7 @@ import (
addrutil
"github.com/ipfs/go-libp2p/p2p/net/swarm/addr"
addrutil
"github.com/ipfs/go-libp2p/p2p/net/swarm/addr"
transport
"github.com/ipfs/go-libp2p/p2p/net/transport"
transport
"github.com/ipfs/go-libp2p/p2p/net/transport"
peer
"github.com/ipfs/go-libp2p/p2p/peer"
peer
"github.com/ipfs/go-libp2p/p2p/peer"
msmux
"gx/ipfs/QmUeEcYJrzAEKdQXjzTxCgNZgc9sRuwharsvzzm5Gd2oGB/go-multistream"
manet
"gx/ipfs/QmYVqhVfbK4BKvbW88Lhm26b3ud14sTBvcm1H7uWUx1Fkp/go-multiaddr-net"
manet
"gx/ipfs/QmYVqhVfbK4BKvbW88Lhm26b3ud14sTBvcm1H7uWUx1Fkp/go-multiaddr-net"
context
"gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
context
"gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
ma
"gx/ipfs/QmcobAGsCjYt5DXoq9et9L8yR8er7o7Cu3DTvpaq12jYSz/go-multiaddr"
ma
"gx/ipfs/QmcobAGsCjYt5DXoq9et9L8yR8er7o7Cu3DTvpaq12jYSz/go-multiaddr"
...
@@ -62,6 +63,12 @@ func (d *Dialer) Dial(ctx context.Context, raddr ma.Multiaddr, remote peer.ID) (
...
@@ -62,6 +63,12 @@ func (d *Dialer) Dial(ctx context.Context, raddr ma.Multiaddr, remote peer.ID) (
maconn
=
d
.
Wrapper
(
maconn
)
maconn
=
d
.
Wrapper
(
maconn
)
}
}
err
=
msmux
.
SelectProtoOrFail
(
SecioTag
,
maconn
)
if
err
!=
nil
{
errOut
=
err
return
}
c
,
err
:=
newSingleConn
(
ctx
,
d
.
LocalPeer
,
remote
,
maconn
)
c
,
err
:=
newSingleConn
(
ctx
,
d
.
LocalPeer
,
remote
,
maconn
)
if
err
!=
nil
{
if
err
!=
nil
{
maconn
.
Close
()
maconn
.
Close
()
...
...
p2p/net/conn/listen.go
View file @
200d7a87
...
@@ -11,11 +11,14 @@ import (
...
@@ -11,11 +11,14 @@ import (
peer
"github.com/ipfs/go-libp2p/p2p/peer"
peer
"github.com/ipfs/go-libp2p/p2p/peer"
"gx/ipfs/QmQopLATEYMNg7dVqZRNDfeE2S1yKy8zrRh5xnYiuqeZBn/goprocess"
"gx/ipfs/QmQopLATEYMNg7dVqZRNDfeE2S1yKy8zrRh5xnYiuqeZBn/goprocess"
goprocessctx
"gx/ipfs/QmQopLATEYMNg7dVqZRNDfeE2S1yKy8zrRh5xnYiuqeZBn/goprocess/context"
goprocessctx
"gx/ipfs/QmQopLATEYMNg7dVqZRNDfeE2S1yKy8zrRh5xnYiuqeZBn/goprocess/context"
msmux
"gx/ipfs/QmUeEcYJrzAEKdQXjzTxCgNZgc9sRuwharsvzzm5Gd2oGB/go-multistream"
tec
"gx/ipfs/QmWHgLqrghM9zw77nF6gdvT9ExQ2RB9pLxkd8sDHZf1rWb/go-temp-err-catcher"
tec
"gx/ipfs/QmWHgLqrghM9zw77nF6gdvT9ExQ2RB9pLxkd8sDHZf1rWb/go-temp-err-catcher"
context
"gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
context
"gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
ma
"gx/ipfs/QmcobAGsCjYt5DXoq9et9L8yR8er7o7Cu3DTvpaq12jYSz/go-multiaddr"
ma
"gx/ipfs/QmcobAGsCjYt5DXoq9et9L8yR8er7o7Cu3DTvpaq12jYSz/go-multiaddr"
)
)
const
SecioTag
=
"/secio"
// ConnWrapper is any function that wraps a raw multiaddr connection
// ConnWrapper is any function that wraps a raw multiaddr connection
type
ConnWrapper
func
(
transport
.
Conn
)
transport
.
Conn
type
ConnWrapper
func
(
transport
.
Conn
)
transport
.
Conn
...
@@ -31,6 +34,8 @@ type listener struct {
...
@@ -31,6 +34,8 @@ type listener struct {
wrapper
ConnWrapper
wrapper
ConnWrapper
proc
goprocess
.
Process
proc
goprocess
.
Process
mux
*
msmux
.
MultistreamMuxer
}
}
func
(
l
*
listener
)
teardown
()
error
{
func
(
l
*
listener
)
teardown
()
error
{
...
@@ -98,6 +103,11 @@ func (l *listener) Accept() (net.Conn, error) {
...
@@ -98,6 +103,11 @@ func (l *listener) Accept() (net.Conn, error) {
maconn
=
l
.
wrapper
(
maconn
)
maconn
=
l
.
wrapper
(
maconn
)
}
}
_
,
_
,
err
=
l
.
mux
.
Negotiate
(
maconn
)
if
err
!=
nil
{
return
nil
,
err
}
c
,
err
:=
newSingleConn
(
ctx
,
l
.
local
,
""
,
maconn
)
c
,
err
:=
newSingleConn
(
ctx
,
l
.
local
,
""
,
maconn
)
if
err
!=
nil
{
if
err
!=
nil
{
if
catcher
.
IsTemporary
(
err
)
{
if
catcher
.
IsTemporary
(
err
)
{
...
@@ -150,9 +160,12 @@ func WrapTransportListener(ctx context.Context, ml transport.Listener, local pee
...
@@ -150,9 +160,12 @@ func WrapTransportListener(ctx context.Context, ml transport.Listener, local pee
Listener
:
ml
,
Listener
:
ml
,
local
:
local
,
local
:
local
,
privk
:
sk
,
privk
:
sk
,
mux
:
msmux
.
NewMultistreamMuxer
(),
}
}
l
.
proc
=
goprocessctx
.
WithContextAndTeardown
(
ctx
,
l
.
teardown
)
l
.
proc
=
goprocessctx
.
WithContextAndTeardown
(
ctx
,
l
.
teardown
)
l
.
mux
.
AddHandler
(
SecioTag
,
nil
)
log
.
Debugf
(
"Conn Listener on %s"
,
l
.
Multiaddr
())
log
.
Debugf
(
"Conn Listener on %s"
,
l
.
Multiaddr
())
log
.
Event
(
ctx
,
"swarmListen"
,
l
)
log
.
Event
(
ctx
,
"swarmListen"
,
l
)
return
l
,
nil
return
l
,
nil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment