bzz msg encode fixed

This commit is contained in:
zsfelfoldi 2015-02-10 12:27:04 +01:00
parent 5698fe9859
commit dbca2238d4
3 changed files with 25 additions and 22 deletions

View file

@ -345,6 +345,10 @@ func (self *TreeChunker) join(depth int, treeSize int64, key Key, chunkC chan *C
case <-chunk.C: // bells are ringing, data have been delivered
}
// if data == nil {
// return
// }
// calculate depth and max treeSize
var depth int
var treeSize int64 = self.hashSize

View file

@ -224,25 +224,24 @@ func (self *bzzProtocol) handle() error {
return nil
}
func (self *bzzProtocol) statusMsg() p2p.Msg {
return p2p.NewMsg(statusMsg,
uint32(Version),
uint32(NetworkId),
"honey",
[]p2p.Cap{},
strategy,
)
}
func (self *bzzProtocol) handleStatus() error {
func (self *bzzProtocol) handleStatus() (err error) {
// send precanned status message
if err := self.rw.WriteMsg(self.statusMsg()); err != nil {
handshake := &statusMsgData{
Version: uint64(Version),
ID: "honey",
NodeID: self.peer.OurPubkey(),
NetworkId: uint64(NetworkId),
Caps: []p2p.Cap{},
}
//if err := self.rw.WriteMsg(self.statusMsg()); err != nil {
if err = p2p.EncodeMsg(self.rw, statusMsg, handshake); err != nil {
return err
}
// read and handle remote status
msg, err := self.rw.ReadMsg()
var msg p2p.Msg
msg, err = self.rw.ReadMsg()
if err != nil {
return err
}
@ -270,13 +269,7 @@ func (self *bzzProtocol) handleStatus() error {
self.peer.Infof("Peer is [bzz] capable (%d/%d)\n", status.Version, status.NetworkId)
req := &peersMsgData{
// Peers: []*peerAddr{self.peer.Address()}, // not implemented in p2p, should be the same as node discovery cademlia
// Key: nil,
peer: peer{bzzProtocol: self, pubkey: status.NodeID},
}
self.hive.addPeers(req)
self.hive.addPeer(peer{bzzProtocol: self, pubkey: status.NodeID})
return nil
}

View file

@ -55,7 +55,7 @@ type Peer struct {
// Use them to display messages related to the peer.
*logger.Logger
infolock sync.Mutex
infolock sync.RWMutex
identity ClientIdentity
caps []Cap
listenAddr *peerAddr // what remote peer is listening on
@ -132,6 +132,12 @@ func newPeer(conn net.Conn, protocols []Protocol, dialAddr *peerAddr) *Peer {
return p
}
func (self *Peer) OurPubkey() (pubkey []byte) {
self.infolock.RLock()
defer self.infolock.RUnlock()
return self.ourID.Pubkey()
}
// Identity returns the client identity of the remote peer. The
// identity can be nil if the peer has not yet completed the
// handshake.