diff options
Diffstat (limited to 'src/proto.h')
| -rw-r--r-- | src/proto.h | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/proto.h b/src/proto.h index 0e85918..3ca7fc7 100644 --- a/src/proto.h +++ b/src/proto.h @@ -9,42 +9,41 @@ #define MAX_DISC 32 #define MAX_INFLIGHT 32 -#define UNCERTAIN_TIME 900 +#define PROTO_UNCTM 900 #define PROTO_TMOUT 60 -struct discovery { - struct in_addr addr; - uint16_t port; - struct nodeid expected_id; +struct ping { + struct nodeid remote_id; + int attempt; + bool is_new; }; union message_cont { - struct discovery discovery; + struct ping ping; }; struct dht; struct msgbuff; -#define PROCESS_REPONSE(NAME) int NAME(struct dht* dht, time_t now, union message_cont* cont, char* packet, size_t packet_len, int socket, struct sockaddr* remote, socklen_t remote_len, struct msgbuff* msgbuff) +#define PROCESS_REPONSE(NAME) int (NAME)(struct dht* dht, time_t now, union message_cont* cont, char* packet, size_t packet_len, int socket, struct sockaddr* remote, socklen_t remote_len, struct msgbuff* msgbuff) typedef PROCESS_REPONSE(cont); -#define PROCESS_TIMEOUT(NAME) int NAME(struct dht* dht, struct nodeid* self, time_t now, union message_cont* cont, struct msgbuff* msgbuff) +#define PROCESS_TIMEOUT(NAME) int (NAME)(struct dht* dht, struct nodeid* self, time_t now, union message_cont* cont, struct msgbuff* msgbuff) typedef PROCESS_TIMEOUT(tmout); struct dht { struct nodeid self; int sfd; - struct in_addr addrs[MAX_DISC]; - struct discovery pending_discover[MAX_DISC]; bool pause; bool reqalloc[MAX_INFLIGHT]; struct { struct sockaddr_storage addr; - cont fun; + socklen_t addr_len; + cont* fun; time_t timeout; - tmout timeout_fun; + tmout* timeout_fun; union message_cont cont; } requestdata[MAX_INFLIGHT]; }; |
