mirror of
https://github.com/aljazceru/lightning.git
synced 2026-01-07 16:14:26 +01:00
common: is_msg_gossip_broadcast() for putting things in filter.
We don't need the other "gossip" messages in our echo-suppression filter. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -181,7 +181,8 @@ bool handle_peer_gossip_or_error(struct per_peer_state *pps,
|
||||
sync_crypto_write(pps, take(pong));
|
||||
return true;
|
||||
} else if (is_msg_for_gossipd(msg)) {
|
||||
gossip_rcvd_filter_add(pps->grf, msg);
|
||||
if (is_msg_gossip_broadcast(msg))
|
||||
gossip_rcvd_filter_add(pps->grf, msg);
|
||||
wire_sync_write(pps->gossip_fd, msg);
|
||||
/* wire_sync_write takes, so don't take again. */
|
||||
return true;
|
||||
|
||||
@@ -108,6 +108,60 @@ bool is_msg_for_gossipd(const u8 *cursor)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool is_msg_gossip_broadcast(const u8 *cursor)
|
||||
{
|
||||
switch ((enum peer_wire)fromwire_peektype(cursor)) {
|
||||
case WIRE_CHANNEL_ANNOUNCEMENT:
|
||||
case WIRE_NODE_ANNOUNCEMENT:
|
||||
case WIRE_CHANNEL_UPDATE:
|
||||
return true;
|
||||
case WIRE_QUERY_SHORT_CHANNEL_IDS:
|
||||
case WIRE_REPLY_SHORT_CHANNEL_IDS_END:
|
||||
case WIRE_QUERY_CHANNEL_RANGE:
|
||||
case WIRE_REPLY_CHANNEL_RANGE:
|
||||
case WIRE_ONION_MESSAGE:
|
||||
case WIRE_OBS2_ONION_MESSAGE:
|
||||
case WIRE_WARNING:
|
||||
case WIRE_INIT:
|
||||
case WIRE_PING:
|
||||
case WIRE_PONG:
|
||||
case WIRE_ERROR:
|
||||
case WIRE_OPEN_CHANNEL:
|
||||
case WIRE_ACCEPT_CHANNEL:
|
||||
case WIRE_FUNDING_CREATED:
|
||||
case WIRE_FUNDING_SIGNED:
|
||||
case WIRE_FUNDING_LOCKED:
|
||||
case WIRE_SHUTDOWN:
|
||||
case WIRE_CLOSING_SIGNED:
|
||||
case WIRE_UPDATE_ADD_HTLC:
|
||||
case WIRE_UPDATE_FULFILL_HTLC:
|
||||
case WIRE_UPDATE_FAIL_HTLC:
|
||||
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
|
||||
case WIRE_COMMITMENT_SIGNED:
|
||||
case WIRE_REVOKE_AND_ACK:
|
||||
case WIRE_UPDATE_FEE:
|
||||
case WIRE_UPDATE_BLOCKHEIGHT:
|
||||
case WIRE_CHANNEL_REESTABLISH:
|
||||
case WIRE_ANNOUNCEMENT_SIGNATURES:
|
||||
case WIRE_GOSSIP_TIMESTAMP_FILTER:
|
||||
case WIRE_TX_ADD_INPUT:
|
||||
case WIRE_TX_REMOVE_INPUT:
|
||||
case WIRE_TX_ADD_OUTPUT:
|
||||
case WIRE_TX_REMOVE_OUTPUT:
|
||||
case WIRE_TX_COMPLETE:
|
||||
case WIRE_TX_SIGNATURES:
|
||||
case WIRE_OPEN_CHANNEL2:
|
||||
case WIRE_ACCEPT_CHANNEL2:
|
||||
case WIRE_INIT_RBF:
|
||||
case WIRE_ACK_RBF:
|
||||
#if EXPERIMENTAL_FEATURES
|
||||
case WIRE_STFU:
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Return true if it's an unknown ODD message. cursor is a tal ptr. */
|
||||
bool is_unknown_msg_discardable(const u8 *cursor)
|
||||
{
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
bool is_unknown_msg_discardable(const u8 *cursor);
|
||||
/* Return true if it's a message for gossipd. */
|
||||
bool is_msg_for_gossipd(const u8 *cursor);
|
||||
/* Return true if it's a gossip update or announcement. */
|
||||
bool is_msg_gossip_broadcast(const u8 *cursor);
|
||||
|
||||
/* Extract channel_id from various packets, return true if possible. */
|
||||
bool extract_channel_id(const u8 *in_pkt, struct channel_id *channel_id);
|
||||
|
||||
Reference in New Issue
Block a user