| 192 | } |
| 193 | |
| 194 | void TCP_Packet::WriteBytes(u8* buffer, int* offset) |
| 195 | { |
| 196 | const int startOff = *offset; |
| 197 | NetLib::WriteUInt16(buffer, offset, sourcePort); |
| 198 | NetLib::WriteUInt16(buffer, offset, destinationPort); |
| 199 | NetLib::WriteUInt32(buffer, offset, sequenceNumber); |
| 200 | NetLib::WriteUInt32(buffer, offset, acknowledgementNumber); |
| 201 | NetLib::WriteByte08(buffer, offset, dataOffsetAndNS_Flag); |
| 202 | NetLib::WriteByte08(buffer, offset, flags); |
| 203 | NetLib::WriteUInt16(buffer, offset, windowSize); |
| 204 | NetLib::WriteUInt16(buffer, offset, checksum); |
| 205 | NetLib::WriteUInt16(buffer, offset, urgentPointer); |
| 206 | |
| 207 | //options |
| 208 | for (size_t i = 0; i < options.size(); i++) |
| 209 | options[i]->WriteBytes(buffer, offset); |
| 210 | |
| 211 | //Zero alignment bytes |
| 212 | if (*offset != startOff + headerLength) |
| 213 | memset(&buffer[*offset], 0, startOff + headerLength - *offset); |
| 214 | |
| 215 | *offset = startOff + headerLength; |
| 216 | |
| 217 | payload->WriteBytes(buffer, offset); |
| 218 | } |
| 219 | |
| 220 | TCP_Packet* TCP_Packet::Clone() const |
| 221 | { |
nothing calls this directly
no test coverage detected