From: Guilherme Maciel Ferreira Date: Tue, 2 Aug 2011 10:19:29 +0000 (-0300) Subject: Renamed create_tcp_header() method to create_ack_request() X-Git-Tag: v1.1^2~34 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=4efd7f33ee809b5a7b0f08b46eb2eb968e6a5787;p=pingcheck Renamed create_tcp_header() method to create_ack_request() --- diff --git a/src/tcp/tcppinger.cpp b/src/tcp/tcppinger.cpp index 6b6a5eb..ec74576 100644 --- a/src/tcp/tcppinger.cpp +++ b/src/tcp/tcppinger.cpp @@ -156,7 +156,7 @@ void TcpPinger::start_send() // Create an TCP header for an ACK request. uint16_t source_port = static_cast ( ( random() % 16383 ) + 49152 ); // same as random() % 65536; uint16_t destination_port = 80; - TcpHeader tcp_header = create_tcp_header( + TcpHeader tcp_header = create_ack_request( source_port, destination_port, ++SequenceNumber @@ -173,6 +173,28 @@ void TcpPinger::start_send() send_ack_request( tcp_header ); } +TcpHeader TcpPinger::create_ack_request( + const uint16_t source_port, + const uint16_t destination_port, + const uint16_t sequence_number +) const +{ + // (5 words of 32 bits = 5 * 4 bytes = 20 bytes) + const uint8_t header_size_in_words = 5; // size in units of 32 bits + const uint16_t window_size_in_octets = 32768; + + // Create an TCP header for an ACK request. + TcpHeader tcp_header; + tcp_header.source_port( source_port ); // assign an random ephemeral port number + tcp_header.destination_port( destination_port ); + tcp_header.sequence_number( sequence_number ); + tcp_header.header_length( header_size_in_words ); + tcp_header.acknowledgment( true ); + tcp_header.window_size( window_size_in_octets ); // window size + + return tcp_header; +} + void TcpPinger::send_ack_request( const TcpHeader &tcp_header ) { // Encode the request packet. @@ -207,28 +229,6 @@ void TcpPinger::send_ack_request( const TcpHeader &tcp_header ) schedule_timeout_rst_reply(); } -TcpHeader TcpPinger::create_tcp_header( - const uint16_t source_port, - const uint16_t destination_port, - const uint16_t sequence_number -) const -{ - // (5 words of 32 bits = 5 * 4 bytes = 20 bytes) - const uint8_t header_size_in_words = 5; // size in units of 32 bits - const uint16_t window_size_in_octets = 32768; - - // Create an TCP header for an ACK request. - TcpHeader tcp_header; - tcp_header.source_port( source_port ); // assign an random ephemeral port number - tcp_header.destination_port( destination_port ); - tcp_header.sequence_number( sequence_number ); - tcp_header.header_length( header_size_in_words ); - tcp_header.acknowledgment( true ); - tcp_header.window_size( window_size_in_octets ); // window size - - return tcp_header; -} - void TcpPinger::schedule_timeout_rst_reply() { // Wait up to N seconds for a reply. diff --git a/src/tcp/tcppinger.h b/src/tcp/tcppinger.h index f1babc1..c90bab7 100644 --- a/src/tcp/tcppinger.h +++ b/src/tcp/tcppinger.h @@ -68,7 +68,7 @@ private: void set_destination_endpoint( const std::string &destination_ip ); void start_send(); - TcpHeader create_tcp_header( + TcpHeader create_ack_request( const uint16_t source_port, const uint16_t destination_port, const uint16_t sequence_number