From 1c45bd6bc2ad8745adc3d0434e60f1afa48ff9df Mon Sep 17 00:00:00 2001 From: p4u Date: Mon, 25 Feb 2019 16:40:06 +0100 Subject: [PATCH] Extend pss delivery chan type --- cmd/pssTest/psstest.go | 6 +++--- net/swarm/swarm.go | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/cmd/pssTest/psstest.go b/cmd/pssTest/psstest.go index 5ce66ff..9948c3b 100644 --- a/cmd/pssTest/psstest.go +++ b/cmd/pssTest/psstest.go @@ -40,11 +40,11 @@ func main() { 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) } }() diff --git a/net/swarm/swarm.go b/net/swarm/swarm.go index 8f4fd06..6b6e644 100644 --- a/net/swarm/swarm.go +++ b/net/swarm/swarm.go @@ -112,9 +112,16 @@ func NewSwarmPorts() *swarmPorts { 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 @@ func (sn *SwarmNet) PssSub(subType, key, topic, address string) error { 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 @@ func (sn *SwarmNet) PssPub(subType, key, topic, msg, address string) error { 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" {