renet 0.1.12-universal-darwin → 0.1.13-universal-darwin

Sign up to get free protection for your applications and to get access to all the features.
data/ext/renet/packet.c DELETED
@@ -1,157 +0,0 @@
1
- /**
2
- @file packet.c
3
- @brief ENet packet management functions
4
- */
5
- #include <string.h>
6
- #define ENET_BUILDING_LIB 1
7
- #include "enet.h"
8
-
9
- /** @defgroup Packet ENet packet functions
10
- @{
11
- */
12
-
13
- /** Creates a packet that may be sent to a peer.
14
- @param dataContents initial contents of the packet's data; the packet's data will remain uninitialized if dataContents is NULL.
15
- @param dataLength size of the data allocated for this packet
16
- @param flags flags for this packet as described for the ENetPacket structure.
17
- @returns the packet on success, NULL on failure
18
- */
19
- ENetPacket *
20
- enet_packet_create (const void * data, size_t dataLength, enet_uint32 flags)
21
- {
22
- ENetPacket * packet = (ENetPacket *) enet_malloc (sizeof (ENetPacket));
23
- if (packet == NULL)
24
- return NULL;
25
-
26
- if (flags & ENET_PACKET_FLAG_NO_ALLOCATE)
27
- packet -> data = (enet_uint8 *) data;
28
- else
29
- {
30
- packet -> data = (enet_uint8 *) enet_malloc (dataLength);
31
- if (packet -> data == NULL)
32
- {
33
- enet_free (packet);
34
- return NULL;
35
- }
36
-
37
- if (data != NULL)
38
- memcpy (packet -> data, data, dataLength);
39
- }
40
-
41
- packet -> referenceCount = 0;
42
- packet -> flags = flags;
43
- packet -> dataLength = dataLength;
44
- packet -> freeCallback = NULL;
45
-
46
- return packet;
47
- }
48
-
49
- /** Destroys the packet and deallocates its data.
50
- @param packet packet to be destroyed
51
- */
52
- void
53
- enet_packet_destroy (ENetPacket * packet)
54
- {
55
- if (packet -> freeCallback != NULL)
56
- (* packet -> freeCallback) (packet);
57
- if (! (packet -> flags & ENET_PACKET_FLAG_NO_ALLOCATE))
58
- enet_free (packet -> data);
59
- enet_free (packet);
60
- }
61
-
62
- /** Attempts to resize the data in the packet to length specified in the
63
- dataLength parameter
64
- @param packet packet to resize
65
- @param dataLength new size for the packet data
66
- @returns 0 on success, < 0 on failure
67
- */
68
- int
69
- enet_packet_resize (ENetPacket * packet, size_t dataLength)
70
- {
71
- enet_uint8 * newData;
72
-
73
- if (dataLength <= packet -> dataLength || (packet -> flags & ENET_PACKET_FLAG_NO_ALLOCATE))
74
- {
75
- packet -> dataLength = dataLength;
76
-
77
- return 0;
78
- }
79
-
80
- newData = (enet_uint8 *) enet_malloc (dataLength);
81
- if (newData == NULL)
82
- return -1;
83
-
84
- memcpy (newData, packet -> data, packet -> dataLength);
85
- enet_free (packet -> data);
86
-
87
- packet -> data = newData;
88
- packet -> dataLength = dataLength;
89
-
90
- return 0;
91
- }
92
-
93
- static int initializedCRC32 = 0;
94
- static enet_uint32 crcTable [256];
95
-
96
- static enet_uint32
97
- reflect_crc (int val, int bits)
98
- {
99
- int result = 0, bit;
100
-
101
- for (bit = 0; bit < bits; bit ++)
102
- {
103
- if(val & 1) result |= 1 << (bits - 1 - bit);
104
- val >>= 1;
105
- }
106
-
107
- return result;
108
- }
109
-
110
- static void
111
- initialize_crc32 ()
112
- {
113
- int byte;
114
-
115
- for (byte = 0; byte < 256; ++ byte)
116
- {
117
- enet_uint32 crc = reflect_crc (byte, 8) << 24;
118
- int offset;
119
-
120
- for(offset = 0; offset < 8; ++ offset)
121
- {
122
- if (crc & 0x80000000)
123
- crc = (crc << 1) ^ 0x04c11db7;
124
- else
125
- crc <<= 1;
126
- }
127
-
128
- crcTable [byte] = reflect_crc (crc, 32);
129
- }
130
-
131
- initializedCRC32 = 1;
132
- }
133
-
134
- enet_uint32
135
- enet_crc32 (const ENetBuffer * buffers, size_t bufferCount)
136
- {
137
- enet_uint32 crc = 0xFFFFFFFF;
138
-
139
- if (! initializedCRC32) initialize_crc32 ();
140
-
141
- while (bufferCount -- > 0)
142
- {
143
- const enet_uint8 * data = (const enet_uint8 *) buffers -> data,
144
- * dataEnd = & data [buffers -> dataLength];
145
-
146
- while (data < dataEnd)
147
- {
148
- crc = (crc >> 8) ^ crcTable [(crc & 0xFF) ^ *data++];
149
- }
150
-
151
- ++ buffers;
152
- }
153
-
154
- return ENET_HOST_TO_NET_32 (~ crc);
155
- }
156
-
157
- /** @} */