Guilherme Maciel Ferreira [Tue, 3 Jan 2012 09:57:46 +0000]
PC-Lint warnings fixed:
- Warning 603: Symbol 'address' (line x) not initialized;
- Info 766: Header file 'limits' not used in module 'src\ip\ipv6header.cpp'.
Guilherme Maciel Ferreira [Tue, 3 Jan 2012 09:54:33 +0000]
PC-Lint warnings fixed:
- Info 732: Loss of sign (initialization) (int to unsigned int).
Guilherme Maciel Ferreira [Tue, 3 Jan 2012 09:53:30 +0000]
PC-Lint warnings fixed:
- Info 713: Loss of precision (initialization) (unsigned int to int)
Guilherme Maciel Ferreira [Tue, 3 Jan 2012 09:52:26 +0000]
PC-Lint warnings fixed:
- Warning 568: non-negative quantity is never less than zero.
Guilherme Maciel Ferreira [Tue, 3 Jan 2012 09:49:52 +0000]
PC-Lint warnings fixed:
- Info 731: Boolean argument to equal/not equal;
- Info 866: Unusual use of '?' in argument to sizeof;
- Info 751: local typedef 'boost_static_assert_typedef_x' (line x) not referenced.
Guilherme Maciel Ferreira [Tue, 3 Jan 2012 09:48:44 +0000]
PC-Lint warnings fixed:
- Info 713: Loss of precision (arg. no. 1) (unsigned int to int);
- Info 701: Shift left of signed quantity (int).
Guilherme Maciel Ferreira [Tue, 3 Jan 2012 09:47:02 +0000]
PC-Lint warnings fixed:
- Warning 1551: Function may throw exception '...' in destructor 'NetworkInterfaceList::~NetworkInterfaceList(void)';
- Info 1775: catch block does not catch any declared exception.
Guilherme Maciel Ferreira [Sat, 31 Dec 2011 22:49:07 +0000]
Changed notify message to error message.
Guilherme Maciel Ferreira [Fri, 30 Dec 2011 02:31:37 +0000]
Make explicit that the address from ICMPv6 can not be retrieved.
Guilherme Maciel Ferreira [Sat, 24 Dec 2011 14:06:41 +0000]
Fix: handling packets with options length equal to zero.
Guilherme Maciel Ferreira [Sat, 24 Dec 2011 13:52:00 +0000]
Fix: the TCP's ttl was being printed as a char instead of as a integer.
Guilherme Maciel Ferreira [Sat, 24 Dec 2011 13:22:30 +0000]
PC-Lint warnings fixed:
- Info 737: Loss of sign in promotion from int to unsigned int;
- Info 713: Loss of precision (arg. no. 2) (unsigned int to int) in 'is.read( ..., PayloadSizeInBytes )' and 'os.write( ..., PayloadSizeInBytes )'.
Guilherme Maciel Ferreira [Sat, 24 Dec 2011 12:42:43 +0000]
PC-Lint warnings fixed:
- Info 1736: Redundant access specifier (private);
Guilherme Maciel Ferreira [Thu, 22 Dec 2011 10:11:39 +0000]
PC-Lint warnings fixed:
- Warning 1551: Function may throw exception '...' in destructor 'NetworkInterfaceList::~NetworkInterfaceList(void)';
- Info 774: Boolean within 'if' always evaluates to True.
Guilherme Maciel Ferreira [Thu, 22 Dec 2011 09:42:24 +0000]
PC-Lint warnings fixed:
- Info 1786: Implicit conversion to Boolean (return) (int to bool);
- Info 1705: static class members may be accessed by the scoping operator;
- Info 713: Loss of precision (arg. no. 2) (unsigned int to int);
- Info 737: Loss of sign in promotion from int to unsigned int in statement 'size -= sizeof(word_array[ 0 ])';
- Info 713: Loss of precision (assignment) (unsigned int to int) in statement 'size -= sizeof(word_array[ 0 ])';
- Info 1773: Attempt to cast away const (or volatile) in statement 'cksum += *(uint8_t*) word_array';
- Replaced all C-style casts by C++ style casts.
Guilherme Maciel Ferreira [Wed, 21 Dec 2011 10:09:19 +0000]
PC-Lint warnings fixed:
- Info 1705: static class members may be accessed by the scoping operator;
- Info 732: Loss of sign (arg. no. 1) (int to unsigned int) in 'byte = Payload[ header_byte_index ]';
- Warning 534: Ignoring return value of function 'MessagePayload::read(...)'.
Guilherme Maciel Ferreira [Wed, 21 Dec 2011 09:56:43 +0000]
PC-Lint warnings fixed:
- Info 766: Header file 'limits' not used in module;
- Warning 534: Ignoring return value of functions 'MessagePayload::read(...)' and 'std::basic_istream<char>::read(char *, int)';
- Info 737: Loss of sign in promotion from int to unsigned int;
- Info 713: Loss of precision (initialization) (unsigned int to int);
- Info 732: Loss of sign (arg. no. 2) (int to unsigned int) in 'header.Payload.append( options_data.get(), options_length )'.
Guilherme Maciel Ferreira [Tue, 20 Dec 2011 10:12:52 +0000]
PC-Lint warnings fixed:
- Info 734: Loss of precision (arg. no. 1) (9 bits to 8 bits) in src\icmp\icmppacketfactory.cpp:170;
- Info 788: enum constant 'Icmpv6Type::Icmpv6Type_First' not used within defaulted switch;
Guilherme Maciel Ferreira [Tue, 20 Dec 2011 10:02:37 +0000]
Made copy constructor private to disable object copies.
Guilherme Maciel Ferreira [Tue, 20 Dec 2011 09:53:25 +0000]
PC-Lint warnings fixed:
- Warning 574: Signed-unsigned mix with relational;
- Info 737: Loss of sign in promotion from int to unsigned int;
- Warning 534: Ignoring return value of function 'IcmpPacket/TcpSegment::write(std::basic_ostream<char> &) const';
- Info 731: Boolean argument to equal/not equal;
Guilherme Maciel Ferreira [Tue, 20 Dec 2011 09:38:53 +0000]
PC-Lint warnings fixed:
- Warning 574: Signed-unsigned mix with relational;
- Info 737: Loss of sign in promotion from int to unsigned int;
Guilherme Maciel Ferreira [Tue, 20 Dec 2011 09:17:20 +0000]
Changed 'ttl' field from signed to unsigned, avoiding loss of precision.
Guilherme Maciel Ferreira [Tue, 20 Dec 2011 09:08:30 +0000]
PC-Lint warnings fixed:
- Info 713: Loss of precision (initialization) (unsigned int to int) of 'resolved_ip_count' and 'current_ttl';
- Info 1762: Member function 'DnsResolver::fill_answers_list(...)' could be made const;
- Info 1762: Member function 'DnsResolver::fill_resolved_ip_list(...)' could be made const;
- Warning 578: Declaration of symbol 'ip' hides symbol 'boost::asio::ip';
- Warning 613: Possible use of null pointer 'a_rr' in left argument to operator '->';
Guilherme Maciel Ferreira [Tue, 20 Dec 2011 08:55:59 +0000]
PC-Lint warnings fixed:
- Warning 1529: Symbol 'Class::operator=(const Class &)' not first checking for assignment to this
Guilherme Maciel Ferreira [Mon, 19 Dec 2011 10:02:43 +0000]
PC-Lint warnings fixed:
- Info 732: Loss of sign (arg. no. 1) (int to unsigned int)
Thomas Jarosch [Mon, 12 Dec 2011 14:29:48 +0000]
Final adjustments for cleaner PC-lint output
Thomas Jarosch [Mon, 12 Dec 2011 14:03:47 +0000]
Silence more bogus PC-Lint warnings
Thomas Jarosch [Mon, 12 Dec 2011 14:02:47 +0000]
Use return value of the function instead of a pointer to the target.
C++ will automatically create a copy of the object upon return.
Thomas Jarosch [Mon, 12 Dec 2011 13:42:06 +0000]
Silence more PC-Lint warnings
Thomas Jarosch [Mon, 12 Dec 2011 13:40:14 +0000]
Ignore unused parameter
Thomas Jarosch [Mon, 12 Dec 2011 11:33:24 +0000]
More constification
Hide "xyz could be made const" linter message
for modifications done through a boost::shared_ptr.
(Pc-Lint can't detect those properly).
Thomas Jarosch [Mon, 12 Dec 2011 11:32:57 +0000]
Hide one warning emitted by BOOST_FOREACH
Thomas Jarosch [Mon, 12 Dec 2011 11:19:17 +0000]
Constification
Thomas Jarosch [Mon, 12 Dec 2011 11:00:42 +0000]
Fix type: Boost::shared_ptr supports conversion to bool but not to char*
Thomas Jarosch [Mon, 12 Dec 2011 10:41:50 +0000]
Add script for easier Pc-Lint invocation
Thomas Jarosch [Mon, 12 Dec 2011 10:41:09 +0000]
Add include directories to PC-lint config
Guilherme Maciel Ferreira [Sun, 11 Dec 2011 22:51:20 +0000]
Changes introduced in the ipv6 branch.
Guilherme Maciel Ferreira [Sat, 10 Dec 2011 13:56:45 +0000]
Message to require sudo access to open raw sockets.
Guilherme Maciel Ferreira [Mon, 21 Nov 2011 22:58:45 +0000]
The IP version used to transport TCP segments can be choosen, IPv4 or IPv6.
Guilherme Maciel Ferreira [Mon, 21 Nov 2011 22:49:51 +0000]
Changed old-style C casts by C++ style casts.
Guilherme Maciel Ferreira [Mon, 21 Nov 2011 22:45:18 +0000]
TCP checksum for IPv6
Guilherme Maciel Ferreira [Sun, 20 Nov 2011 19:18:30 +0000]
Documentation for TCP Segment Factory.
Guilherme Maciel Ferreira [Sat, 19 Nov 2011 16:59:57 +0000]
Small documentation change in IP header classes: specifying the unit.
Guilherme Maciel Ferreira [Sat, 19 Nov 2011 16:58:21 +0000]
TODO: move DNS library to its own project.
Guilherme Maciel Ferreira [Sat, 19 Nov 2011 13:15:58 +0000]
Some grammatical corrections.
Guilherme Maciel Ferreira [Sat, 19 Nov 2011 13:05:02 +0000]
Fixed include guards name
Guilherme Maciel Ferreira [Sat, 19 Nov 2011 13:01:08 +0000]
Bring aboard ChangeLog file.
Guilherme Maciel Ferreira [Sat, 19 Nov 2011 12:04:40 +0000]
Documentation for ICMP Packet Factory.
Guilherme Maciel Ferreira [Fri, 18 Nov 2011 02:09:55 +0000]
Just hardening the code with asserts.
Guilherme Maciel Ferreira [Fri, 18 Nov 2011 02:05:59 +0000]
Bug: the match() method cannot consider the source address from IP header,
once the IPHeader object is not initialized in the read() method.
We must figure out why the IPv6 data does not come in the istream like IPv4 data.
Guilherme Maciel Ferreira [Fri, 18 Nov 2011 02:00:21 +0000]
It is working, and can be configurated, the ICMP ping over IPv6
Guilherme Maciel Ferreira [Tue, 15 Nov 2011 23:53:43 +0000]
Small documentation change
Guilherme Maciel Ferreira [Tue, 15 Nov 2011 23:52:53 +0000]
Small code change
Guilherme Maciel Ferreira [Tue, 15 Nov 2011 23:42:27 +0000]
Documentation for IPv6 header.
Guilherme Maciel Ferreira [Tue, 15 Nov 2011 23:06:34 +0000]
TCP checksum source and destination addresses use Boost.Asio objects instead of primitive types
Guilherme Maciel Ferreira [Mon, 14 Nov 2011 00:10:30 +0000]
TCP pinger IP version is chosen by the pinger factory
Guilherme Maciel Ferreira [Sat, 12 Nov 2011 19:38:22 +0000]
Bring aboard TCP header class for IPv6
Guilherme Maciel Ferreira [Sat, 12 Nov 2011 18:43:02 +0000]
Updated "Type of Service" field name to "Differentiated Services"
Guilherme Maciel Ferreira [Sat, 12 Nov 2011 18:25:54 +0000]
Using Boost.Asio address objects instead of primitive integer types
- This allows switching to 128 bits IPv6 address
Guilherme Maciel Ferreira [Sat, 12 Nov 2011 03:01:50 +0000]
Simplifying Network Interface class and using more Boost.Asio objects
Guilherme Maciel Ferreira [Sat, 12 Nov 2011 02:38:34 +0000]
Using Boost.Asio protocol type instead of the enumeration for TCP
- Also, changed the IP address to Boost type
Guilherme Maciel Ferreira [Sat, 12 Nov 2011 00:42:21 +0000]
Bring aboard a class that encapsulate the list of network interfaces.
Guilherme Maciel Ferreira [Thu, 10 Nov 2011 07:07:20 +0000]
Adjusting some comments
Guilherme Maciel Ferreira [Tue, 8 Nov 2011 10:02:12 +0000]
New method to get the network interface IP address
- Using Boost.Asio objects instead of a primitive data type (under development).
Guilherme Maciel Ferreira [Tue, 8 Nov 2011 09:45:39 +0000]
Using Boost.Asio protocol type instead of the enumeration and adding ICMPv6 ping
Guilherme Maciel Ferreira [Sun, 6 Nov 2011 21:58:40 +0000]
Delegating the segment creation and printing to more specialized classes
Guilherme Maciel Ferreira [Sun, 6 Nov 2011 21:47:24 +0000]
Ephemeral source port calculation moved to a method(), mirroring the destination port.
Guilherme Maciel Ferreira [Sun, 6 Nov 2011 21:38:10 +0000]
Renamed variable, most significant noun first
Guilherme Maciel Ferreira [Sun, 6 Nov 2011 21:35:25 +0000]
The IcmpPacket's write() method returns a boolean, mirroring the read() method.
Guilherme Maciel Ferreira [Sun, 6 Nov 2011 21:28:54 +0000]
Bring aboard TCP segment factory.
- This class handles the TCP segment creation for IPv4 and IPv6
Guilherme Maciel Ferreira [Sun, 6 Nov 2011 20:11:12 +0000]
Bring aboard TCP segment (IP and TCP headers)
- This allows to polymorphically change IPv4 and IPv6
Guilherme Maciel Ferreira [Sun, 6 Nov 2011 14:03:27 +0000]
Documentation for IPv4 header.
Guilherme Maciel Ferreira [Sat, 5 Nov 2011 17:35:09 +0000]
High Integrity CPP Rule 3.3.14: Declare the copy assignment operator protected in an abstract class.
Guilherme Maciel Ferreira [Sat, 5 Nov 2011 14:51:01 +0000]
High Integrity CPP Rule 3.3.16: Explicitly declare polymorphic member functions virtual in a derived class.
Guilherme Maciel Ferreira [Sat, 5 Nov 2011 14:24:46 +0000]
High Integrity CPP Guideline 3.2.4: An abstract class shall have no public constructors.
Guilherme Maciel Ferreira [Sat, 5 Nov 2011 14:16:38 +0000]
Avoid 'unused variable' warning when compiling a non-debug version.
Guilherme Maciel Ferreira [Fri, 4 Nov 2011 03:08:00 +0000]
Delegating the ICMP packet creation to a specialized class and using a polymorphic packet type
Guilherme Maciel Ferreira [Fri, 4 Nov 2011 02:51:50 +0000]
Bring aboard ICMP packet factory.
- This class handles the packet creation for ICMPv4 and ICMPv6
Guilherme Maciel Ferreira [Fri, 4 Nov 2011 02:08:39 +0000]
Providing read() and write() methods, once operators >> and << does work properly with smart pointers
Guilherme Maciel Ferreira [Thu, 3 Nov 2011 00:03:59 +0000]
Renamed methods, changed verb 'is' to 'match'
Guilherme Maciel Ferreira [Wed, 2 Nov 2011 05:02:14 +0000]
The packet's type check is performed by methods in IcmpPacket
- Because ICMP v4 and v6 have different values to echo reply
Guilherme Maciel Ferreira [Wed, 2 Nov 2011 04:36:11 +0000]
The packet printing is polymorphically performed by the IcmpPackets instead of the IcmpPinger
- Due to different fields, the printing methods were moved to the packet classes
Guilherme Maciel Ferreira [Wed, 26 Oct 2011 21:46:36 +0000]
Changed assert(false) to assert(!"message") as recommended by C++ Coding Standards, chapter 68.
Guilherme Maciel Ferreira [Wed, 26 Oct 2011 21:36:34 +0000]
Increased the assertion check required to construct a PingScheduler object
Guilherme Maciel Ferreira [Wed, 26 Oct 2011 21:30:22 +0000]
DNS resolver now detects IPv6 IPs too.
- Also changed the detection mechanism from C fashioned to C++ boost style
Guilherme Maciel Ferreira [Wed, 26 Oct 2011 17:06:05 +0000]
Added const qualifier to some parameters
Guilherme Maciel Ferreira [Tue, 25 Oct 2011 00:31:20 +0000]
Bring aboard ICMPv6 packet class
Guilherme Maciel Ferreira [Tue, 25 Oct 2011 00:15:01 +0000]
Bring aboard ICMPv6 header class
Guilherme Maciel Ferreira [Sat, 22 Oct 2011 18:29:18 +0000]
Providing different methods to set the types in ICMP v4 and v6
- it was not provided a polymorphic approach
Guilherme Maciel Ferreira [Sat, 22 Oct 2011 17:54:29 +0000]
Added ICMPv6 messages types, as defined at iana.org/assignments/icmpv6-parameters
Guilherme Maciel Ferreira [Fri, 21 Oct 2011 01:23:36 +0000]
Renamed IcmpType enumeration to Icmpv4Type, because ICMP type values differ between v4 and v6 of the protocol
Guilherme Maciel Ferreira [Fri, 21 Oct 2011 00:57:15 +0000]
Updated classes comments
Guilherme Maciel Ferreira [Wed, 19 Oct 2011 23:55:58 +0000]
Renamed IcmpPacket class to Icmpv4Packet, in order to distinguish from the ICMPv6 classes
Guilherme Maciel Ferreira [Tue, 18 Oct 2011 23:50:05 +0000]
Renamed IcmpHeader class to Icmpv4Header, in order to distinguish from ICMP v6
Guilherme Maciel Ferreira [Tue, 18 Oct 2011 23:08:17 +0000]
Small documentation change
Guilherme Maciel Ferreira [Tue, 18 Oct 2011 23:00:32 +0000]
Bring aboard IPv6 header class (not tested yet)
Guilherme Maciel Ferreira [Sun, 4 Sep 2011 12:20:16 +0000]
Solved operator precedence mismatch reported by PC-lint, where the '|' has higher precedence than ternary '?:'
- Warning 514: Unusual use of a Boolean expression
Guilherme Maciel Ferreira [Sun, 4 Sep 2011 11:59:20 +0000]
Implementing the assignment operator, also checking for self-assignment reported by PC-lint
- Warning 1529: Symbol 'MessagePayload::operator=(const MessagePayload &)' not first checking for assignment to this
- Warning 1539: member 'MessagePayload::PayloadSizeInBytes' not assigned by assignment operator
- Warning 1539: member 'MessagePayload::Payload' not assigned by assignment operator
Guilherme Maciel Ferreira [Sun, 4 Sep 2011 11:50:48 +0000]
Solving two issues reported by PC-lint
- Ignoring return value of function 'sigfillset(__sigset_t *)'
- Declaration of symbol 'signal' hides symbol 'signal(int, void (*)(int))'
Guilherme Maciel Ferreira [Sun, 4 Sep 2011 04:15:56 +0000]
Renamed parameter to avoid hiding symbol 'socket(int, int, int)' (issued by PC-lint)