From: Guilherme Maciel Ferreira Date: Sat, 27 Aug 2011 01:11:29 +0000 (-0300) Subject: Replced old-style C functions by C++ STL versions X-Git-Tag: v1.2~73 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=c531ba644a131f497bffd290199f1b3ea5382339;p=pingcheck Replced old-style C functions by C++ STL versions --- diff --git a/src/tcp/tcpheader.cpp b/src/tcp/tcpheader.cpp index e3a3254..13b23a9 100644 --- a/src/tcp/tcpheader.cpp +++ b/src/tcp/tcpheader.cpp @@ -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,