@@ -100,7 +100,9 @@ impl P2pNetworkPubsubAction {
100100 P2pNetworkPubsubAction :: Broadcast { message } => {
101101 // println!("(pubsub) {this} broadcast");
102102 let mut buffer = vec ! [ 0 ; 8 ] ;
103- binprot:: BinProtWrite :: binprot_write ( & message, & mut buffer) . expect ( "msg" ) ;
103+ if binprot:: BinProtWrite :: binprot_write ( & message, & mut buffer) . is_err ( ) {
104+ return ;
105+ }
104106 let len = buffer. len ( ) - 8 ;
105107 buffer[ ..8 ] . clone_from_slice ( & ( len as u64 ) . to_le_bytes ( ) ) ;
106108
@@ -111,12 +113,11 @@ impl P2pNetworkPubsubAction {
111113 topic : TOPIC . to_owned ( ) ,
112114 } ) ;
113115 }
114- P2pNetworkPubsubAction :: Sign { .. } => {
116+ P2pNetworkPubsubAction :: Sign { author , topic , .. } => {
115117 if let Some ( to_sign) = state. to_sign . front ( ) {
116118 let mut publication = vec ! [ ] ;
117- if let Err ( err) = prost:: Message :: encode ( to_sign, & mut publication) {
118- // TODO: dispatch action for logging
119- let _ = err;
119+ if prost:: Message :: encode ( to_sign, & mut publication) . is_err ( ) {
120+ store. dispatch ( P2pNetworkPubsubAction :: SignError { author, topic } ) ;
120121 } else {
121122 let signature = store. service ( ) . sign_publication ( & publication) . into ( ) ;
122123 store. dispatch ( P2pNetworkPubsubAction :: BroadcastSigned { signature } ) ;
@@ -183,17 +184,20 @@ impl P2pNetworkPubsubAction {
183184 // println!("{}", std::str::from_utf8(&id).unwrap());
184185 // }
185186 let mut data = vec ! [ ] ;
186- if let Err ( err) = prost:: Message :: encode_length_delimited ( & msg, & mut data) {
187- // TODO: dispatch action for logging
188- let _ = err;
187+ if prost:: Message :: encode_length_delimited ( & msg, & mut data) . is_err ( ) {
188+ store. dispatch ( P2pNetworkPubsubAction :: OutgoingMessageError {
189+ msg,
190+ peer_id,
191+ } ) ;
189192 } else {
190193 store. dispatch ( P2pNetworkPubsubAction :: OutgoingData {
191- data : data. clone ( ) . into ( ) ,
194+ data : data. into ( ) ,
192195 peer_id,
193196 } ) ;
194197 }
195198 }
196199 }
200+ P2pNetworkPubsubAction :: OutgoingMessageError { .. } => { }
197201 P2pNetworkPubsubAction :: OutgoingData { mut data, peer_id } => {
198202 let Some ( state) = store
199203 . state ( )
@@ -217,6 +221,7 @@ impl P2pNetworkPubsubAction {
217221 } ) ;
218222 }
219223 }
224+ P2pNetworkPubsubAction :: SignError { .. } => ( ) ,
220225 }
221226 }
222227}
0 commit comments