提交 f71be6e9 作者: Juan Batiz-Benet 提交者: Brian Tiger Chow

merge wind HoC

上级 5684fa23
...@@ -6,6 +6,8 @@ import ( ...@@ -6,6 +6,8 @@ import (
msgio "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-msgio" msgio "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-msgio"
ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr" ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
spipe "github.com/jbenet/go-ipfs/crypto/spipe"
peer "github.com/jbenet/go-ipfs/peer" peer "github.com/jbenet/go-ipfs/peer"
u "github.com/jbenet/go-ipfs/util" u "github.com/jbenet/go-ipfs/util"
) )
...@@ -25,8 +27,7 @@ type Conn struct { ...@@ -25,8 +27,7 @@ type Conn struct {
Closed chan bool Closed chan bool
Outgoing *msgio.Chan Outgoing *msgio.Chan
Incoming *msgio.Chan Incoming *msgio.Chan
secIn <-chan []byte Secure *spipe.SecurePipe
secOut chan<- []byte
} }
// Map maps Keys (Peer.IDs) to Connections. // Map maps Keys (Peer.IDs) to Connections.
......
...@@ -5,7 +5,7 @@ import ( ...@@ -5,7 +5,7 @@ import (
"fmt" "fmt"
"net" "net"
ident "github.com/jbenet/go-ipfs/identify" spipe "github.com/jbenet/go-ipfs/crypto/spipe"
conn "github.com/jbenet/go-ipfs/net/conn" conn "github.com/jbenet/go-ipfs/net/conn"
msg "github.com/jbenet/go-ipfs/net/message" msg "github.com/jbenet/go-ipfs/net/message"
u "github.com/jbenet/go-ipfs/util" u "github.com/jbenet/go-ipfs/util"
...@@ -103,10 +103,9 @@ func (s *Swarm) connSetup(c *conn.Conn) error { ...@@ -103,10 +103,9 @@ func (s *Swarm) connSetup(c *conn.Conn) error {
u.DOut("Starting connection: %s\n", c.Peer.Key().Pretty()) u.DOut("Starting connection: %s\n", c.Peer.Key().Pretty())
// handshake TODO(jbenet) enable handshake if err := s.connSecure(c); err != nil {
// if err := s.connHandshake(c); err != nil { return fmt.Errorf("Conn securing error: %v", err)
// return fmt.Errorf("Conn handshake error: %v", err) }
// }
// add to conns // add to conns
s.connsLock.Lock() s.connsLock.Lock()
...@@ -122,12 +121,23 @@ func (s *Swarm) connSetup(c *conn.Conn) error { ...@@ -122,12 +121,23 @@ func (s *Swarm) connSetup(c *conn.Conn) error {
return nil return nil
} }
// connHandshake runs the handshake with the remote connection. // connSecure setups a secure remote connection.
func (s *Swarm) connHandshake(c *conn.Conn) error { func (s *Swarm) connSecure(c *conn.Conn) error {
sp, err := spipe.NewSecurePipe(s.ctx, 10, s.local, c.Peer)
if err != nil {
return err
}
err = sp.Wrap(s.ctx, spipe.Duplex{
In: c.Incoming.MsgChan,
Out: c.Outgoing.MsgChan,
})
if err != nil {
return err
}
//TODO(jbenet) this Handshake stuff should be moved elsewhere. return nil
// needs cleanup. needs context. use msg.Pipe.
return ident.Handshake(s.local, c.Peer, c.Incoming.MsgChan, c.Outgoing.MsgChan)
} }
// Handles the unwrapping + sending of messages to the right connection. // Handles the unwrapping + sending of messages to the right connection.
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论