From 27e0133d40f7b328482b501a18e22b12a55564ea Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 13 Jul 2025 10:07:59 -0400 Subject: Associate --- src/retransmit.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/retransmit.h (limited to 'src/retransmit.h') diff --git a/src/retransmit.h b/src/retransmit.h new file mode 100644 index 0000000..0d2a90b --- /dev/null +++ b/src/retransmit.h @@ -0,0 +1,32 @@ +#ifndef G4U_RETRANSMIT_H +#define G4U_RETRANSMIT_H + +#include +#include + +struct ack_map_node { + unsigned char dst_addr[6]; + unsigned char* packet; + int packet_size; + int retries_left; + struct ack_map_node* next; +}; + +struct ack_map { + struct ack_map_node* top; +}; + +struct retransmitter { + pthread_t thread_id; + int sock; + int device_index; + struct ack_map messages; + bool quit; +}; + +struct retransmitter* start_retransmit_thread(int sock, int device_index); +void send_until_acked(struct retransmitter* retransmitter, const unsigned char dst_addr[6], const unsigned char* packet, int packet_size); +void handle_ack(struct retransmitter* retransmitter); +void free_retransmitter(struct retransmitter* retransmitter); + +#endif /* G4U_RETRANSMIT_H */ -- cgit 1.4.1