arnaucube
arnaucube/go-dvotePublic Self-hosted repository
Extend pss delivery chan type
p4u p4u@dabax.net
Mon, 25 Feb 2019 16:40:06 +0100
commit

1c45bd6bc2ad8745adc3d0434e60f1afa48ff9df

parent

cd19d5b0448bbdbe08b5bbebdddda5f92030ab9c

2 files changed, 15 insertions(+), 6 deletions(-)

jump to
M cmd/pssTest/psstest.go → cmd/pssTest/psstest.go

@@ -40,11 +40,11 @@ } else {

fmt.Println("First parameter must be sym or asym") return } - + fmt.Printf("My PSS pubKey is %s\n", sn.PssPubKey) go func() { for { - msg := <-sn.PssTopics[topic].Delivery - fmt.Printf("<- Pss received: %s\n", msg) + pmsg := <-sn.PssTopics[topic].Delivery + fmt.Printf("<- Pss received msg:{%s}\n", pmsg.Msg) } }()
M net/swarm/swarm.go → net/swarm/swarm.go

@@ -112,9 +112,16 @@ sp.P2P = 31000

return sp } +type pssMsg struct { + Msg []byte + Peer *p2p.Peer + Asym bool + Keyid string +} + type pssSub struct { Unregister func() - Delivery (chan []byte) + Delivery (chan pssMsg) Address string }

@@ -274,11 +281,12 @@ }

sn.PssTopics[topic] = new(pssSub) sn.PssTopics[topic].Address = address - sn.PssTopics[topic].Delivery = make(chan []byte) + sn.PssTopics[topic].Delivery = make(chan pssMsg) var pssHandler pss.HandlerFunc = func(msg []byte, peer *p2p.Peer, asym bool, keyid string) error { log.Debug("pss received", "msg", fmt.Sprintf("%s", msg), "keyid", fmt.Sprintf("%s", keyid)) - sn.PssTopics[topic].Delivery <- msg + + sn.PssTopics[topic].Delivery <- pssMsg{Msg: msg, Peer: peer, Asym: asym, Keyid: keyid} return nil } topicHandler := pss.NewHandler(pssHandler)

@@ -304,6 +312,7 @@ // send symetric message

err = sn.Pss.SendSym(symKeyId, strTopic(topic), hexutil.Bytes(msg)) } if subType == "raw" { + // sed raw message err = sn.Pss.SendRaw(hexutil.Bytes(address), dstTopic, hexutil.Bytes(msg)) } if subType == "asym" {