blob: af79364c5e57677d2139d59b56d6debdc542b184 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#ifndef PDESC_H
#define PDESC_H
#include <netinet/in.h>
#include <stdint.h>
struct psock;
enum pdesc_remote_errno {
REMOTE_EXISTS,
REMOTE_NOT_FOUND,
REMOTE_PACKET_INVALID,
REMOTE_ADDR_INVALID,
REMOTE_ICMP_ECHO_CLIENT,
REMOTE_ICMP_REPLY_SERVER,
REMOTE_MAX_DESCRIPTORS,
};
enum pdesc_state { PDESC_STATE_INVALID = 0, PDESC_STATE_AUTH, PDESC_STATE_DATA };
struct paddr {
struct sockaddr_storage sockaddr;
char str[INET6_ADDRSTRLEN];
};
struct pdesc {
enum pdesc_state state;
struct paddr peer;
uint16_t identifier;
uint16_t sequence;
};
void pdesc_init(struct pdesc *, uint16_t identifier);
enum pdesc_remote_errno pdesc_find_current_remote(struct psock *, struct pdesc ** const);
int pdesc_set_addr(struct paddr *, struct sockaddr_storage const *);
#endif
|