Replced old-style C functions by C++ STL versions
authorGuilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
Sat, 27 Aug 2011 01:11:29 +0000 (22:11 -0300)
committerGuilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
Sat, 27 Aug 2011 01:11:29 +0000 (22:11 -0300)
src/tcp/tcpheader.cpp

index e3a3254..13b23a9 100644 (file)
@@ -133,16 +133,22 @@ uint16_t TcpHeader::calculate_tcp_checksum(
     pseudo_header.protocol = IPPROTO_TCP;
     pseudo_header.header_length = htons( tcp_segment_size_in_bytes );
 
-    int pseudo_header_size_in_bytes = sizeof(PseudoIpv4Header);
+    uint8_t *pseudo_header_data = (uint8_t *) &pseudo_header;
+    size_t pseudo_header_size_in_bytes = sizeof(pseudo_header);
 
-    uint8_t tcp_buffer[65536];
-    memset( tcp_buffer, 0, sizeof(tcp_buffer) );
+    uint8_t *tcp_header_data = Payload.get();
+    size_t tcp_header_size_in_bytes = TcpHeaderSizeInBytes;
 
-    memcpy( tcp_buffer, &pseudo_header, pseudo_header_size_in_bytes );
-    memcpy( tcp_buffer + pseudo_header_size_in_bytes, Payload.get(),
-            TcpHeaderSizeInBytes );
-    memcpy( tcp_buffer + pseudo_header_size_in_bytes + TcpHeaderSizeInBytes,
-            tcp_payload_data, tcp_payload_size_in_bytes );
+    uint8_t tcp_buffer[65536];
+    size_t tcp_buffer_size_in_bytes = sizeof(tcp_buffer);
+    fill( tcp_buffer, tcp_buffer + tcp_buffer_size_in_bytes, 0 );
+
+    copy( pseudo_header_data, pseudo_header_data + pseudo_header_size_in_bytes,
+          tcp_buffer );
+    copy( tcp_header_data, tcp_header_data + tcp_header_size_in_bytes,
+          tcp_buffer + pseudo_header_size_in_bytes );
+    copy( tcp_payload_data, tcp_payload_data + tcp_payload_size_in_bytes,
+          tcp_buffer + pseudo_header_size_in_bytes + tcp_header_size_in_bytes );
 
     uint16_t cksum = calculate_checksum(
             (uint16_t *) tcp_buffer,