FreeRDP
Loading...
Searching...
No Matches
PacketMessage.h
1
20#ifndef WINPR_WLOG_PACKET_MESSAGE_PRIVATE_H
21#define WINPR_WLOG_PACKET_MESSAGE_PRIVATE_H
22
23#include "wlog.h"
24
25#define PCAP_MAGIC_NUMBER 0xA1B2C3D4
26
27typedef struct
28{
29 UINT32 magic_number; /* magic number */
30 UINT16 version_major; /* major version number */
31 UINT16 version_minor; /* minor version number */
32 INT32 thiszone; /* GMT to local correction */
33 UINT32 sigfigs; /* accuracy of timestamps */
34 UINT32 snaplen; /* max length of captured packets, in octets */
35 UINT32 network; /* data link type */
37
38typedef struct
39{
40 UINT32 ts_sec; /* timestamp seconds */
41 UINT32 ts_usec; /* timestamp microseconds */
42 UINT32 incl_len; /* number of octets of packet saved in file */
43 UINT32 orig_len; /* actual length of packet */
45
46typedef struct s_wPcapRecort
47{
48 wPcapRecordHeader header;
49 void* data;
50 size_t length;
51 struct s_wPcapRecort* next;
53
54typedef struct
55{
56 FILE* fp;
57 char* name;
58 BOOL write;
59 SSIZE_T file_size;
60 size_t record_count;
61 wPcapHeader header;
62 wPcapRecord* head;
63 wPcapRecord* tail;
64 wPcapRecord* record;
65} wPcap;
66
67void Pcap_Close(wPcap* pcap);
68
69WINPR_ATTR_MALLOC(Pcap_Close, 1)
70wPcap* Pcap_Open(char* name, BOOL write);
71
72void Pcap_Flush(wPcap* pcap);
73
74typedef struct
75{
76 BYTE Destination[6];
77 BYTE Source[6];
78 UINT16 Type;
80
81typedef struct
82{
83 BYTE Version;
84 BYTE InternetHeaderLength;
85 BYTE TypeOfService;
86 UINT16 TotalLength;
87 UINT16 Identification;
88 BYTE InternetProtocolFlags;
89 UINT16 FragmentOffset;
90 BYTE TimeToLive;
91 BYTE Protocol;
92 UINT16 HeaderChecksum;
93 UINT32 SourceAddress;
94 UINT32 DestinationAddress;
96
97typedef struct
98{
99 UINT16 SourcePort;
100 UINT16 DestinationPort;
101 UINT32 SequenceNumber;
102 UINT32 AcknowledgementNumber;
103 BYTE Offset;
104 BYTE Reserved;
105 BYTE TcpFlags;
106 UINT16 Window;
107 UINT16 Checksum;
108 UINT16 UrgentPointer;
109} wTcpHeader;
110
111BOOL WLog_PacketMessage_Write(wPcap* pcap, void* data, size_t length, DWORD flags);
112
113#endif /* WINPR_WLOG_PACKET_MESSAGE_PRIVATE_H */