forked from yaosj2k/dnsforwarder
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathiheader.h
executable file
·50 lines (35 loc) · 1.19 KB
/
iheader.h
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
40
41
42
43
44
45
46
47
48
49
50
#ifndef IHEADER_H_INCLUDED
#define IHEADER_H_INCLUDED
#include "dnsrelated.h"
#include "utils.h"
typedef struct _IHeader IHeader;
struct _IHeader{
int32_t _Pad; /* Must be 0 */
Address_Type BackAddress;
SOCKET SendBackSocket;
char Domain[256];
int HashValue;
DNSRecordType Type;
BOOL ReturnHeader;
BOOL EDNSEnabled;
int EntityLength;
char Agent[ROUND_UP(LENGTH_OF_IPV6_ADDRESS_ASCII + 1,
sizeof(void *)
)
];
};
#define IHEADER_TAIL(ptr) (void *)((IHeader *)(ptr) + 1)
#define IHEADER_CONTAINING_HEADER(ptr) (((IHeader *)(ptr))->_Pad == 0)
void IHeader_Reset(IHeader *h);
int IHeader_Fill(IHeader *h,
BOOL ReturnHeader,
char *DnsEntity,
int EntityLength,
struct sockaddr *BackAddress,
SOCKET SendBackSocket,
sa_family_t Family,
const char *Agent
);
int IHeader_SendBack(IHeader *h /* Entity followed */);
int IHeader_SendBackRefusedMessage(IHeader *h);
#endif // IHEADER_H_INCLUDED