diff options
Diffstat (limited to 'ffd/send.c')
-rw-r--r-- | ffd/send.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -300,3 +300,21 @@ void ffd_send_announce_request(ffd_iface_t *iface, ffd_neigh_t *neigh, ffd_node_ send_any(iface, neigh, packet); } + +void ffd_send_seqno_request(ffd_neigh_t *neigh, ffd_announce_t *announce, uint16_t seqno) { + ffd_packet_t *packet = alloca(sizeof(ffd_packet_t)+FFD_PACKET_MAX); + + packet->version_magic = htons(FFD_VERSION_MAGIC); + packet->len = 0; + + ffd_tlv_seqno_req_t *req = ffd_tlv_add(packet, FFD_PACKET_MAX, TLV_SEQNO_REQ, sizeof(ffd_tlv_seqno_req_t)); + if (!req) + return; + + req->seqno = htons(seqno); + req->node = announce->node; + req->type = htons(announce->type); + req->key = htons(announce->key); + + send_any(NULL, neigh, packet); +} |