MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / WriteBytes

Method WriteBytes

pcsx2/DEV9/PacketReader/IP/IP_Packet.cpp:168–200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166 }
167
168 void IP_Packet::WriteBytes(u8* buffer, int* offset)
169 {
170 const int startOff = *offset;
171 CalculateChecksum(); //ReComputeHeaderLen called in CalculateChecksum
172 payload->CalculateChecksum(sourceIP, destinationIP);
173
174 NetLib::WriteByte08(buffer, offset, (_verHi + (headerLength >> 2)));
175 NetLib::WriteByte08(buffer, offset, dscp); //DSCP/ECN
176 NetLib::WriteUInt16(buffer, offset, GetLength());
177
178 NetLib::WriteUInt16(buffer, offset, id);
179 NetLib::WriteByte08(buffer, offset, fragmentFlags1);
180 NetLib::WriteByte08(buffer, offset, fragmentFlags2);
181
182 NetLib::WriteByte08(buffer, offset, timeToLive);
183 NetLib::WriteByte08(buffer, offset, protocol);
184 NetLib::WriteUInt16(buffer, offset, checksum); //header csum
185
186 NetLib::WriteIPAddress(buffer, offset, sourceIP);
187 NetLib::WriteIPAddress(buffer, offset, destinationIP);
188
189 //options
190 for (size_t i = 0; i < options.size(); i++)
191 options[i]->WriteBytes(buffer, offset);
192
193 //Zero alignment bytes
194 if (*offset != startOff + headerLength)
195 memset(&buffer[*offset], 0, startOff + headerLength - *offset);
196
197 *offset = startOff + headerLength;
198
199 payload->WriteBytes(buffer, offset);
200 }
201
202 IP_Packet* IP_Packet::Clone() const
203 {

Callers 5

SendMethod · 0.45
RecvMethod · 0.45
WritePacketMethod · 0.45
CalculateChecksumMethod · 0.45
VerifyChecksumMethod · 0.45

Calls 6

WriteByte08Function · 0.85
WriteUInt16Function · 0.85
GetLengthFunction · 0.85
WriteIPAddressFunction · 0.85
CalculateChecksumMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected