Is this node_announcement different from prev (not sigs and timestamps)? */
| 185 | |
| 186 | /* Is this node_announcement different from prev (not sigs and timestamps)? */ |
| 187 | bool nannounce_different(struct gossip_store *gs, |
| 188 | const struct node *node, |
| 189 | const u8 *nannounce, |
| 190 | bool *only_missing_tlv) |
| 191 | { |
| 192 | const u8 *oparts[3], *nparts[3]; |
| 193 | size_t osizes[3], nsizes[3]; |
| 194 | const u8 *orig; |
| 195 | |
| 196 | /* Get last one we have. */ |
| 197 | orig = gossip_store_get(tmpctx, gs, node->bcast.index); |
| 198 | get_nannounce_parts(orig, oparts, osizes); |
| 199 | get_nannounce_parts(nannounce, nparts, nsizes); |
| 200 | |
| 201 | if (only_missing_tlv) |
| 202 | *only_missing_tlv = memeq(oparts[0], osizes[0], nparts[0], nsizes[0]) |
| 203 | && memeq(oparts[1], osizes[1], nparts[1], nsizes[1]) |
| 204 | && !memeq(oparts[2], osizes[2], nparts[2], nsizes[2]); |
| 205 | |
| 206 | return !memeq(oparts[0], osizes[0], nparts[0], nsizes[0]) |
| 207 | || !memeq(oparts[1], osizes[1], nparts[1], nsizes[1]) |
| 208 | || !memeq(oparts[2], osizes[2], nparts[2], nsizes[2]); |
| 209 | } |
| 210 | |
| 211 | static void sign_and_send_nannounce(struct daemon *daemon, |
| 212 | u8 *nannounce, |
no test coverage detected