Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 1.8.0 [5287] #518

Merged
merged 48 commits into from
May 14, 2019
Merged

Release 1.8.0 [5287] #518

merged 48 commits into from
May 14, 2019

Conversation

MiguelCompany
Copy link
Member

No description provided.

LuisGP and others added 30 commits March 5, 2019 08:17
* Refs #4500 Added TLSConfig to TCPTransportDescriptor:
    #4498 TLSConfig Implementation
    #4499 TLSConfig XML Parsing
    #4504 Applying new coding style
    #4503 Added TLSConfig XML unit test.

* Refs #4500 First implementation. Added TCPAcceptors. Thinking in implement a Factory for TCPAcceptor and TCPChannelResource. Current unittests passing (sometimes calls an already deleted object).

* Refs #4504 Fixed bug on destruction due to new hierarchy and applying code style to modified files (WIP).

* Refs #4504 Applied coding style.

* Refs #4503 WIP - Handshake failing.

* Refs #4503 Added HelloWorldTCP with TLS. Both HW and first unittest working fine.

* Refs #4505 Finished new HelloWorldExampleTCP with better argument support.

* Refs #4500 One test failing. The rest of cases works fine.

* Refs #4500 Finished test cases.

* Refs #4503 Added blackbox tests for TLS. Fixed TCPv6 issue.

* Refs #4504 Applying new coding style

* Refs #4504 Removed some tabs.

* Refs #4500 Added CMake parameter to disable TLS Support (NO_TLS). If OpenSSL isn't found, TLS Support is disabled too.

* Refs #4658 Fixed MAC warnings.

* Refs #4658 Fixed Windows warnings.

* Refs #4658 Remove condition in CMake to avoid issues compiling outside of Fast-RTPS and shutdown the secure socket before destroy it.

* Refs #4658 Remove condition when checking deleting acceptors.

* Refs #4658 Fixing valgrind issues. Removed read method without error_code parameter.

* Refs #4658 Added RTCP header basic integrity check.

* Refs #4658 Applied suggested changes

Co-Authored-By: LuisGP <[email protected]>

* Refs #4658 Applied suggested changes and trying to solve all issues.

* Refs #4658 Fixed Windows error (virtual destructors).

* Refs #4658 Fixed connect issue with lambda captures.

* Refs #4658 Fixed zombi sockets on Linux.

* Refs #4672 Bug fixing and WAN testing

* Refs #4658 Added missing locks.

* Refs #4658 Added mechanism to cancel zombi sockets with clang.

* Refs #4658 Fixed unitialized condition.

* Refs #4658 Fixed unitialized condition.

* Refs #4658 Windows.h header order

* Refs #4658 Fixed initialization order issues.

* Refs #4658 PR Requested changes.
* Refs #3998 Make mutationTries configurable

* Refs #3998 Fix signed/unsigned comparision warning.

* Refs #3998 Update include/fastrtps/rtps/attributes/RTPSParticipantAttributes.h

Co-Authored-By: LuisGP <[email protected]>
* Fixed size strings [4216] (#361)

* Refs #4213. New template fixed_string and unit tests.

* Refs #4213. Changing participant, topic and type name to string_255.

* Refs #4213. Adapting blackbox tests.

* New Allocation test [4259] (#364)

* Allocation test improved

* Using osrf_testing_tools

* Readme improved.

* Refs #4222 Update the allocation tests to generate a csv file with the results

* Refs #4222 Update the allocation tests to receive a new argument to set a prefix for the output files.

* Refs #4222 Update cmake file to work as the rest of tests

* Refs #4222 Change the output prefix management to set the output file from outside of the program

* Refs #4222 Fix compilation issue.

* Refs #4222 Fix compilation issue.

* Refs #4222 Add a new argument to set the domain of the test

* Refs #4222 Fix compilation issue.

* Refs #4222 Update the csv export process

* Refs #4222. Restoring callgrind related code.

* Refs #4222. Using condition_variable where requested.

* Refs #4222 Fix compilation issue.

* Refs  #4222 Move the include directory on cmakelist file from "test" to "profiling"

* Refs #4259. Added python script to generate plot.

Also allocation tests now appends to csv new data.

* Fixed size bitmaps [4320] (#370)

* Refs #4292. Removed get_set from SequenceNumberSet_t.

* Refs #4292. Changed ReaderProxy::get_unsent_changes into for_each_unsent_change.

* Refs #4292. Removed get_requested_changes from ReaderProxy.

* Refs #4292. New template BitmapRange.

* Refs #4292. Using BitmapRange on SequenceNumberSet_t.

* Refs #4292. Using BitmapRange on FragmentNumberSet_t.

* Refs #4292. Added unit tests for BitmapRange.

* Refs #4320. Converting SequenceNumberSet_t into an alias.

* Refs #4320. Fixing compiler warnings.

* Refs #4320. Precalculating max when setting base.

* Remove ParameterList_t [4370] (#379)

* Refs #4306. Refactor for reading parameter list.

* Refs #4306. Refactor for writing ParticipantProxyData.

* Refs #4306. Refactor for writing ReaderProxyData.

* Refs #4306. Refactor for writing WriterProxyData.

* Refs #4306. Refactor for writing inline qos.

* Refs #4306. Remove ParameterList_t.

* Refs #4370. Addressing warnings.

* Refs #4370. Using dynamic_cast when processing parameters.

* Refs #4370. Asserting results of dynamic_cast.

* Refs #4370. Changing inheritance of Parameter_t from private to public.

* Refs #4370. Fixing errors compiling on Debug.

* Mutex wrapper with testing properties [4405] (#383)

* Refs #4403. Mutex wrapper with testing properties.

* Refs #4403. Improved doxygen.

* Fixing error initializing on windows.

* Refs #4403. Fixed compilation error on windows.

* Refs #4403. Fixed error in cmakelists.

* Refs #4403. New implementation using LD_PRELOAD.

* Refs #4403. Only tests will run on Linux.

* Refs #4403. Fixed cmake syntax error.

* Refs #4403. Fixed error preloading lib with spaces in dir.

* Refs #4403. Add label NoMemoryCheck to mutex unit tests.

* Refs #4403. Removed blank line.

* Refs #4403. Added support for pthread_mutex_timedlock()

* Resource limited vector [4421] (#386)

* Refs #4363. Resource limited vector implementation.

* Refs #4363. Unit tests for resource limited vector.

* Refs #4421. Fixing warnings.

* Refs #4421. Fixing warning on Mac.

* Refs #4421. Improved doxygen doc.

* Refs #4421. Adding a template parameter for the configuration struct.

* Refs #4421. Added all iterator related wrapper methods.

* Refs #4421. Added erase and pop_back wrapper methods.

* Refs #4421. Added element access wrapper methods.

* Refs #4421. Avoiding use of constexpr.

* Writers: Resource limits on the number of matched readers [4570] (#406)

* Refs #4364. Resource limits on RTPSWriter

* Refs #4366. Resource limits for StatelessWriter::m_matched_readers

* Refs #4366. Refactor to remove StatelessWriter::reader_locators in favour of unsent_changes_

* Refs #4366. Tidy up and apply resource limits.

* Refs #4424. Renamed attribute to matched_readers_allocation.

* Refs #4365. ReaderProxy mutex not dynamically created

* Refs #4365. Hiding ReaderProxy internals from MessageReceiver.

* Refs #4365. Removing mutex on ReaderProxy.

* Refs #4365. Using ranged for loops.

* Refs #4365. Reducing calls to set::insert on ReaderProxy.

* Refs #4365. Style and privates on ReaderProxy.

* Refs #4365. Periodic heartbeat code moved to StatefulWriter.

* Refs #4365. Periodic heartbeat uses send_heartbeat_nts.

* Refs #4365. Wakeup of AsyncWriterThread always called from StatefulWriter, never from ReaderProxy.

* Refs #4365. Styling and tidy up.

* Refs #4365. Fixing compile errors on Debug.

* Refs #4365. Resource limiting changes_for_reader on ReaderProxy.

* Refs #4365. Removing dependency of MessageReceiver from the details of the writer.

* Refs #4365. Started refactor towards ReaderProxy reuse.

* Refs #4365. Reusing ReaderProxy instances and controlling the pool size.

* Refs #4365. Fixing warnings.

* Refs #4365. Adding matched_subscriber_allocation to PublisherAttributes

* Refs #4362. Avoiding dynamic allocations on XTypes related parameters

* Refs #4424. Parsing matchedSubscribersAllocation on publisher profiles.

* Refs #4424. XSD profiles file updated.

* Refs #4424. XMLParser unit tests updated.

* Refs #4593. Added FixedSized type.

* Refs #4593. Added some blackbox tests.

* Refs #4570. Removing auto on StatefulWriter.

* Refs #4570. Removing temporary vector on check_acked_status.

* Refs #4570. Fixing warnings.

* Refs #4570. Addressing review comments.

* Refs #4570. Fixing a typo and removing unnecesary includes of ReaderProxy

* Refs #4570. Apply suggestions from code review

Co-Authored-By: MiguelCompany <[email protected]>

* Refs #4704. Using matchedSubscribersAllocation on allocations test. (#423)

* WIP: Sync write converted to non-blocking call (#426)

* Refs #4630. Main mutex was converted to timed version.

* Refs #4630. Removed unused CDRMessagePool.

* Refs #4630. Fixing warnings.

* Refs #4630. Spread max blocking time

* Refs #4630. Refactorization NetworkFactory and UDPTransportInterface.

* Refs #4630. Refactorization TCPTransportInterface.

* Refs #4630. Created TCP keep alive event.

* Refs #4630. Fixing errors with TLS.

* Refs #4630. Fixing errors with TLS.

* Refs #4630. Fixing errors with TLS.

* Refs #4630. Fixing warnings.

* Refs #4630. Fixing invalid read.

* Refs #4630. Debugging clean up.

* Refs #4630. Debugging clean up.

* Refs #4630. Debugging clean up.

* Refs #4630. Debugging clean up.

* Refs #4630. Removing warnings on windows.

* Refs #4630. Removing invalid read.

* Refs #4630 Fixing Windows crash.

* Refs #4630. Applying coding style.

* Refs #4630. Removed lock.

* Refs #4630. Removed shared from lambdas.

* Refs #4630. Invalid read.

* Refs #4630. Invalid read.

* Refs #4630. Invalid read.

* Refs #4630. Invalid read.

* Refs #4630. Using new state.

* Refs #4630. Tired.

* Refs #4630. Change in states.

* Refs #4630. Avoid block.

* Refs #4630. Fixing TLS.

* Refs #4630. Fixed windows warnings.

* Refs #4630. Fixing windows warnings.

* Refs #4630. Avoiding bad shutddown.

* Refs #4630. Applying coding style.

* Refs #4630 Different strands for write/read. Unlock promise if channel was closed before call the async operation.

* Refs #4630. Fixed extra spaces.

* Refs #5094 Added ReaderProxyTests (find_change related tests).

* Refs #5094 Fixed find_change related bug.

* Refs #5107. Fixing windows compile error.

* Fixing non deterministic tests.

* Fixed a warning on windows.
* Refs #5073. Making package drop deterministic.

* Refs #5073. Removing unused test_RTCPMessageManager.
* Refs #5103 Adding LivelinessChangedStatus and LivelinessLostStatus

* Refs #5103 Adding listener callbacks and methods to query liveliness

* Refs #4993 Adding assert_liveliness method

* Refs #4993 Code review changes
* Refs #4939 Added TimedCallback class and made changes to participant classes to be able to get the resource event

* Refs #4939 Sorting history cache changes by timestamp

* Refs #4939 Changes to subscriber side

* Refs #4939 Changing signature of ReaderListener::onNewCacheChangeAdded so that the cache change can be removed from the subscriber if is received after it has expired

* Refs #4939 Changing RTPSMessageGroup so that if a change has a timestamp we use that timestamp in INFO_TS submessage

* Refs #4939 Changes to subscriber side

* Refs #4939 Adding two blackbox tests for lifespan

* Refs #4939 Changes to subscriber to account for the case where a change with a timestamp smaller than the earliest change in the history arrives

* Refs #4939 Adding a C++ example

* Refs #4939 Mutexing SubscriberImpl::lifespan_expired and calling destroy() in TimedCallback destructor

* Refs #4939 Some fixes and minor changes

* Refs #4939 Using system_clock

* Refs #4939 Fixing CI builds

* Refs #4939 Fixing some tests that were failing

* Refs #4939 Fixing some warnings

* Refs #4939 Taking into account the case where the earliest change in the history is not the one that started the timer. This can happen for instance if a change starts the timer but it is later removed from the history

* Refs #4992 Applying coding style to lifespan c++ example files

* Refs #4992 Moving lifespan example readme file to markdown

* Refs #4992 Explicitly setting durability to transient local in C++ example

* Refs #4992 Removing unnecessary getter for resource event in participant

* Refs #4992 Moving TimedCallback to a new timedevent/ directory

* Refs #4992 Trying to fix mac compiler error

* Refs #4992 Fixing warnings

* Refs #4992 Removing unnecessary forward declaration + changes to XML parser

* Refs #4992 Fixing build after rebase

* Refs #4992 Fixing tests that were failing after resolving conflicts incorrectly
* Refs #4693 Refactor of PublisherHistory and SubscriberHistory to use a map instead of current vector of pairs

* Refs #4693 Adding new class DeadlineTimer

* Refs #4693 Changes to Participant, ParticipantImpl and RTPSParticipant so that I can later get the resource event from PublisherImpl and SubscriberImpl

* Refs #4693 Adding callbacks to pub/sub listeners to notify missed deadlines

* Refs #4693 Adding deadline functionality to publisher and subscriber

* Refs #4693 Adding check for compatibility reader-writer

* Refs #4693 Adding C++ example

* Refs #4693 Fixing a bug found in SubscriberHistory while testing deadline

* Refs #4693 Changing default parameters in deadline example

* Refs #4693 Do not start the timer if all instances missed the deadline

* Refs #4693 Adding more options to the example to allow publisher to send only a certain number of samples

* Refs #4693 Refactoring Publisher(Subscriber)History to avoid reserving memory for vector of latest samples

* Refs #4693 Removing unused class deadlineQoS

* Refs #4693 History could be empty, fixing get_latest_samples() in Publisher/SubscriberHistory

* Refs #4693 Adding blackbox tests

* Refs #4693 Adding helper CacheChange to Publisher/SubscriberHistory to ensure latest change is always kept in the history, even if changes are removed (for instance if user does takeData or if writers are volatile

* Refs #4693 Adding a struct to Publisher/SubscriberHistory to keep the latest sample for each instance

* Refs #4693 Changed a bit the design to fix failure seen when a sample is sent and never updated (sometimes the deadline wasn't detected as missed)

* Refs #4693 Adding some comments to tests and changing parameters so that they run faster

* Refs #4693 Improving precision of current time

* Refs #4693 Locking reader/writer mutex to prevent the history from being changed while we are checking for deadlines or updating the timer

* Refs #4693 Code formatting

* Refs #4693 Added Offered/RequestedDeadlineMissedStatus defined in the DDS standard

* Refs #4693 Adding getters for offered/requested deadline missed status

* Refs #4693 Back to first deadline implementation + update of unit tests

* Refs #4693 Minor changes to C++ example + some fixes for compiler warnings

* Refs #4693 Resetting total_count_change after requesting deadline missed status

* Refs #4693 Allowing changing deadline QoS

* Refs #4693 Updating C++ example description

* Refs #4693 Alternative implementation

* Refs #4693 Removing some attributes from C++ example

* Refs #4693 Replacing forward declaration with include + other minor changes

* Refs #4693 Replacing Time_t with chrono

* Refs #4693 Moving next_deadline map to history

* Refs #4693 Clarify example description

* Refs #4993 Addressing review suggestions related to C++ example

* Refs #4993 Applying coding style to public member variables

* Refs #4993 Passing deadline missed status as const and merging OfferedDeadlineMissedStatus and RequestedDeadlineMissed status into a single structure

* Refs #4993 Moving KeyedChanges to a separate file so that publisher and subscriber can share it

* Refs #4993 Moving DeadlineTimer new directory src/cpp/timedevent

* Refs #4993 Fixing compiler errors in blackbox tests

* Refs #4993 Removing unnecessary getter in Participant

* Refs #4993 Fixing warnings

* Refs #4993 Moved KeyedChanges to a common/ subdirectory

* Refs #4993 Removing unnecessary forward declaration

* Refs #4993 Changes to XML parser

* Refs #4993 Renaming DeadlineTimer -> TimedCallback so that class is shared with LifespanQoS

* Refs #4993 Fixing build and warnings

* Refs #4993 Fixing deadline tests due to issue when resolving conflicts

* Refs #4993 Fixing valgrind

* Refs #4993 Trying to make tests more stable increasing deadline period + removing unnecessary cancel of timer

* Refs #4993 Increasing duration even more

* Refs #4993 Splitting long lines

* Refs #5133 Fixed LivelinessAssertion test.
* Refs #4995 Code formatting

* Refs #4939 Added TimedCallback class and made changes to participant classes to be able to get the resource event

* Refs #4939 Sorting history cache changes by timestamp

* Refs #4939 Changes to subscriber side

* Refs #4939 Changing signature of ReaderListener::onNewCacheChangeAdded so that the cache change can be removed from the subscriber if is received after it has expired

* Refs #4939 Changes to subscriber side

* Refs #4939 Adding two blackbox tests for lifespan

* Refs #4939 Adding a C++ example

* Refs #4939 Mutexing SubscriberImpl::lifespan_expired and calling destroy() in TimedCallback destructor

* Refs #4939 Fixing CI builds

* Refs #4939 Fixing some tests that were failing

* Refs #4939 Taking into account the case where the earliest change in the history is not the one that started the timer. This can happen for instance if a change starts the timer but it is later removed from the history

* Refs #4992 Applying coding style to lifespan c++ example files

* Refs #4992 Moving lifespan example readme file to markdown

* Refs #4992 Moving TimedCallback to a new timedevent/ directory

* Refs #Adding boolean to Writer and Reader Attributes + some format changes

* Refs #4995 More format changes

* Refs #4995 Implementing disable positive ACKs QoS

* Refs #4995 Some fixes and format changes + adding a new QoS

* Refs #4995 Adding C++ example

* Refs #4995 Allowing users to turn on/off disable positive ACKs QoS in the C++ example and updating example documentation accordingly

* Refs #4995 Adding two blackbox tests (very similar to lifespan QoS tests)

* Refs #5042 Changes to C++ example

* Refs #5042 Addressing some of the review suggestions

* Refs #4995 Always using source timestamp in info TS

* Refs #4995 Expired changes are no longer removed from the history so logic when ack timer expires has to be changed

* Refs #5042 Fixing compiler warnings

* Refs #5042 Fixing matching reader-writer

* Refs #5042 Adding functionality to XML parser

* Refs #5042 Adding command line options to C++ examples + updating example documentation
* Refs #5149 Added checks to the calculated ports.

* Refs #5151 Requested changes.

* Refs #5151 Avoid valgrind test in PortParametersTests
* Refs #4125 Added argument -exportsymbols to export PubSub symbols.

* Refs #4715 Struct inheritance support.

* Refs #4713 Added bitmask support

* Refs #4713 Added bitset support.

* Refs #4715 Added bitset inheritance.

* Refs #4716 Annotations to TypeObject

* Refs #4716 TypeObject <-> DynamicType conversions.

* Refs #4825 Applied new coding style.

* Refs #4716 Apply annotations behavior.

* Refs #4838 WIP Adding test suite

* Refs #4838 Test suite migrated to FastRTPSGen.

* Refs #4942 WIP Added tests for enum, alias, maps...

* Refs #4942 Added tests for enum, alias, maps, and forward decl.

* Refs #4942 Test inherited members.

* Refs #4942 Added 4.2 test. Better union methods.

* Refs #4942 Adding unittests for new features.

* Refs #4942 WIP More testing. Serialization and annotation fixing.

* Refs #4942 Fixed initial values for bitmask. Fixed management of bitmask on dynamic types. Fixed annotations on dynamic types. Fixed bitsets in both sides (TODO, serialize in a compatible way). Fixed discriminator in dynamic types...

* Refs #4942 Removed debug comment to avoid download FastRTPS on testing.

* Refs #4975 Fixed field names to avoid VS names collision. Fixed warnings on Mac.

* Refs #4975 Added int8 and uint8 getters and setters to DynamicData. Added new tests and fixes detected thanks to them.

* Refs #4972 Serialization of bitset field by field similary to an struct.

* Refs #4985 Added bitset behavior to dynamic types.

* Refs #4984 Removed bound value from bitset factory constructor.

* Refs #4975 Changed tabs to 4 spaces in java files.

* Refs #4975 Added more checks to bitmask unitest.

* Refs #4986 Added bitset and bitmask XML parsing.

* Refs #4973 Updated FastCDR.

* Refs #4975 Requested changes.

* Refs #4975 Requested changes.

* Refs #4974 Submodules update

* Refs #4974 Fixed unitialized bitmask.

* Refs #4975 Fixed warnings on Windows

* Refs #4975 Fixed rebase errors.

* Refs #4975 Fixing Windows warnings.

* Refs #4975. Fixing type conversion warnings.

* Refs #4975. Fixing another type conversion warnings.
* Refs #3987 Time_t nanosec setter and getter.

* Refs #3987 Duration_t as independent struct.

* Refs #3987 Time_t is now under fastrtps namespace and manages only nanosec, and added a new rtps::Time_t that manages both fraction and nanosec. Duration_t is a Time_t aliases as originally.

* Refs #5108 Update include/fastrtps/rtps/common/Time_t.h

Co-Authored-By: LuisGP <[email protected]>

* Refs #5108 Requested changes.

* Refs #5108 Rebase with develop. Added message if osrf_testing_tools_cpp not found instead making cmake fail.

* Refs #5108 Fixing warnings in all platforms.

* Refs #5108 Rebase with develop.

* Refs #5108 Fixing Warnings in MAC and Windows.

* Refs #5108 Fixed error when nanosec_ or fraction_ equals 0xffffffff. Source splitted in cpp file.

* Refs #5108 Fixed Duration_t rounding errors.

* Refs #5108 Fixed Duration_t one more infinite case.

* Refs #5108 Rebase

* Refs #5108 Fixing warnings on Win

* Refs #5108 Rebase issues.
* Refs #5013 Rebase issues.
Refs #5013 Requested changes.
Refs #5013 Fixing MAC and Windows Warnings.
Refs #5013 Rebase + Fixes
Requeste changes.
Refs #5014 Applying coding style.
Refs #5011 Update doxyfile file.
Refs #5014 Reviewed and fixed doxygen and coding style.
Refs #5011 Update doxygen

* Refs #5013 More fixes.
* Refs #5219. Making UDP send_to calls non-blocking.

* Refs #5219. Fixing error handling.
* Refs #5041. Filter non-local addresses on whitelist.

Signed-off-by: Miguel Company <[email protected]>

* Refs #5041. Fixed unit tests.

Signed-off-by: Miguel Company <[email protected]>

* Refs #5041. Handling case for all whitelist filtered-out.
…508)

* Refs #5204 Check if reader has disable_positive_acks enabled.

* Refs #5204 WIP Adding BlackBoxTests for DisablePositiveAck

* Refs #5204 Fixing failing test

* Refs #5204 Fixing mac warning

* Refs #5204 Trying to make tests more stable on Windows

* Refs #5204 Fixing memory leak
…… [5205] (#505)

* Refs #4971 Fix #457. Added Blackbox for it and modified SimpleCommunication to ease testing.

* Refs #4971 Requested changes.
* The ParticipantImpl::~ParticipantImpl() must be modified to prevent a discovery callback error.

As implementation currently works the Participant object pass as argument to the callbacks is destroyed before this callbacks are cutoff. Callbacks are cutoff in the RTPSDomain::removeRTPSParticipant so the Participant object pass as argument should at least be alive till this call returns. The file src/cpp/participant/ParticipantImpl.cpp should be modified by reordering:

	// delete(mp_participant); // former position

	if(this->mp_rtpsParticipant != nullptr)
	{
		RTPSDomain::removeRTPSParticipant(this->mp_rtpsParticipant);
	}

	delete(mp_participant); // new position

* Correcting a warning that arose whenever a participant was removed because the associated discovery CacheChange was twice removed from PDP History

* Update PDPSimpleListener.cpp
Because of the code [here](https://github.com/eProsima/Fast-RTPS/blob/f6ebf154a97089136c4906de11f535969708f2a0/src/cpp/rtps/RTPSDomain.cpp#L113), the RTPS Domain GUID can potentially be not unique between multiple participant hosted on different computer. This happens because the host ID component is initialized with eProsima magic number (0x010f) and the last two digit of the IPv4 address of the first interface enumerated by `getifaddrs`.

On some systems where there are several network interfaces, this scheme is not sufficient for generating a mostly unique hostid to be used for the RTPS Domain and collision can happen in the case where the first interface enumerated is an interface used by the system in isolation with the actual network. In addition, the `appId (the process ID running the stack) is only unique within the computer itself and does not provide enough uniqueness especially when the process is started as part of a systemd job on boot.

This fix generates a MD5 sum of all IPv4 addresses for all interfaces, then "folds" that 16 bytes MD5 sum into a 16 bits value to be used as the lower two bytes of the hostid field. Doing it this way provides more guarantee that the field will be unique across multiple identical systems.

issue: #456
* Refs #5040. Well-known port calculation on endpoint locators.

Signed-off-by: Miguel Company <[email protected]>

* Refs #5040. Applying review suggestion.
@MiguelCompany MiguelCompany mentioned this pull request May 8, 2019
31 tasks
@richiware
Copy link
Member

Build status:

  • Linux Build Status
  • Mac Build Status
  • Windows Build Status

@richiware
Copy link
Member

Build status:

  • Linux Build Status
  • Mac Build Status
  • Windows Build Status

…9] (#472)

* Refs #5020 Static data now allows different sizes between tests. Fix help messages.

* Refs #5029 Requested changes.

* Refs #5029 Rebase fix

* Refs #5029 Requested changes
@richiware
Copy link
Member

Build status:

  • Linux Build Status
  • Mac Build Status
  • Windows Build Status

* Refs #5337. Fixed error creating installer with VS2019.

* Refs #5337. Fixed selection of arch for Win32.

* Refs #5337. Fixed error getting platform.
@MiguelCompany MiguelCompany changed the title Release 1.8.0 Release 1.8.0 [5287] May 13, 2019
raquelalvarezbanos and others added 2 commits May 13, 2019 09:51
* Refs #5335 Homogenization of Fast-RTPS and Fast-RTPS-docs README files

* Refs #5335 Fixing link to release notes

* Refs #5335 Removing old release notes

* Refs #5335 Updates to roadmap

* Refs #5335 Addressing review comments
* Refs #2434. Protection of getHistorySize

* Refs #2434. Turning m_hasChangedLocalPDP into atomic_bool.

* Refs #2434. Not using operator = on atomic<bool>.

* Refs #2434. Fixing lock ordering on SecurityManager.

* Refs #2434. Fixing lock order on EDP with security.
@richiware
Copy link
Member

Build status:

  • Linux Build Status
  • Mac Build Status
  • Windows Build Status

richiware and others added 5 commits May 13, 2019 12:07
Refs #5381. Now OPENSSL's ssl libraries are needed.
* Refs #5335 Fixing XMLParser not parsing non-blocking send correctly

* Refs #5335 Adding unit test
* Refs #5335 Updates to copyright and roadmap

* Refs #5335 More updates to roadmap
* Refs #5386. Fixing serialization of DisablePositiveAcks QoS.

* Refs #5386. Fixing deserialization of DisablePositiveAcks QoS.

* Refs #5386. Fixing warnings.

* Refs #5386. Fixing tabs.
@richiware
Copy link
Member

Build status:

  • Linux Build Status
  • Mac Build Status
  • Windows Build Status

Luis Gasco and others added 2 commits May 14, 2019 13:58
* Refs #5381. Fixed error creating linux installer.

* Refs #5381. Fixing makefile files from examples.

* Refs #5392 Adding missing makefiles to examples

* Refs #5381. Fixed some makefile files from examples.

* Refs #5381. Added openssl library search in generated makefile.
@richiware
Copy link
Member

Build status:

  • Linux Build Status
  • Mac Build Status
  • Windows Build Status

@richiware
Copy link
Member

Build status:

  • Linux Build Status
  • Mac Build Status
  • Windows Build Status

@richiware
Copy link
Member

Build status:

  • Linux Build Status
  • Mac Build Status
  • Windows Build Status

@MiguelCompany MiguelCompany merged commit 89c7c7e into master May 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants