Erik Boasson
ed06ab8f4b
trivial modifications to pacify gcc -O2 and clang --analyze
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 15:03:20 +01:00
Erik Boasson
b70e88c16f
change initialization of AVL trees to avoid "strict prototype" warnings
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 15:03:19 +01:00
Erik Boasson
9f51c44e50
Avoid deadlock on publication-matched listener invocation
...
This addresses the deadlock of #41 but leaves another issue open: sequencing of listener invocations on publication/subscription matched events: there is a risk that the "unmatch" even precedes the "match" event from the application perspective, even though it is quite unlike in practice. Various ways of addressing it exist, but it looks like sequencing at the level of the "dds" entities suffers from similar risks. So better to just avoid the deadlock for now.
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 12:13:40 +01:00
Erik Boasson
ca99fd10aa
Refactor handling of an SPDP-republish event
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 12:13:40 +01:00
Erik Boasson
0064def595
Set cover in address set generation used a temporary that was too large by a factor of sizeof(void*)
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 12:13:40 +01:00
Erik Boasson
c491f321dd
Fix incorrect free of unicast socket/connection in rtps_init error handling
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 12:13:40 +01:00
Erik Boasson
27913be1c3
Fix memory leak in function to clear all writer address sets
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 12:13:40 +01:00
Erik Boasson
0b814df584
Use sizeof(sin_addr) in IPv4 address compare instead of effectively sizeof(size_t)
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 12:13:40 +01:00
Erik Boasson
d6306bddbb
Properly handle "incompatible if unrecognized" in parameter lists ( #79 )
...
Previously it would fall through and assert in a debug build or return an error in a release build. The behaviour in a release build was almost correct, as the flag means the entity should be completely ignored if the parameter is not understood by the implementation, but I don't believe it should result in a warning — certainly not that claims the parameter list is invalid. A specific return code is now used to indicate a parameter list that was rejected because of this flag, and that suppresses the warning.
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 12:13:40 +01:00
Erik Boasson
e0d5587639
Unified key-to-iid map means a backref to the map is no longer needed
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-02 12:13:40 +01:00
Erik Boasson
781c644800
participants are not hidden built-in entities in built-in topics and should get an instance handle consistent with the DCPSParticipant topic
...
Signed-off-by: Erik Boasson <erik.boasson@prismtech.com>
2019-01-01 18:52:27 +01:00
Erik Boasson
179a35d192
fix race conditions in instance id-to-key lookup
...
this is just an intermediate step: firstly, iid-to-key lookup is a linear scan; secondly, the lookup should happen on the RHC or the WHC and not on some internal map to associates key values with instance handles and is independent of entities
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-12-25 12:40:05 +01:00
Erik Boasson
1a0fcea0c2
replace old builtin topics by new ones and add implementation of DCPSSubscription and DCPSPublication
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-12-14 14:02:08 +01:00
Erik Boasson
78d49b52a0
add new "builtin topic" types and conversion routines
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-12-14 14:02:08 +01:00
Erik Boasson
e631567c35
extend sertopic interface and move the concept of a type descriptor to just the sertopic definition
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-12-14 14:02:08 +01:00
Erik Boasson
c169df6227
fix refcount leak of tkmap instances when copying transient-local history from a local writer
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-12-14 14:02:08 +01:00
Erik Boasson
ef65101ad7
pushing released serdata:s onto a freelist was dropped by accident in the rewriting of them
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-12-14 14:02:08 +01:00
Erik Boasson
29f542b916
iid and tkmap are integral to this DDSI stack and should be part of it
...
They were made available from the DCPS layer to DDSI using some function pointers, but it makes more sense to have them as part of the DDSI core.
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-12-14 14:02:08 +01:00
Jeroen Koekkoek
1cf03332ca
Simplify logging and remove unwanted functions from abstraction layer
...
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2018-11-30 23:42:19 +01:00
eboasson
2e2224daea
Merge pull request #31 from eboasson/builtintopics
...
Refactor sample representation (along with a few small other details)
2018-11-09 12:23:47 +01:00
Erik Boasson
8ba218dca8
dissociate WSAEvent from sockets handled on dedicated threads
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-11-05 16:00:41 +01:00
Erik Boasson
e3874c3c27
add some missing details in comments for serdata operations
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-29 21:04:26 +08:00
Erik Boasson
b34cbdcf0c
sockaddr_compare should really be ipaddr_compare
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-29 13:38:16 +08:00
Erik Boasson
f2f436bde3
wrap indirect calls to WHC in inline functions
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-29 13:28:19 +08:00
Erik Boasson
3e343d032a
reduce dependency on sertopic->status_cb_entity
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-29 13:26:24 +08:00
Erik Boasson
7cb80e7851
minor refactor of CDR-to-key/keyhash generation
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-29 13:24:07 +08:00
Erik Boasson
259e4676dc
fix sequencing of internal liveliness monitoring and rtps init/term
...
liveliness monitoring requires rtps stack initialised if initially deaf, so starting the monitoring thread must happen after rtps_init
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-28 13:54:17 +08:00
Erik Boasson
9cab5e769c
various interconnected changes for ddsi_serdata
...
- topic-erased key-only serdata for use in tkmap
- restoration of including key values in invalid samples
- special handling of keyless topics
- keyhash generation via streams
- elimination of dynamically allocated buffers in keyhash
- removal of the last vestiges of "serstate"
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-28 13:31:23 +08:00
Erik Boasson
fd931a2605
remove accidental return statement on the return of a void function
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-26 20:32:47 +08:00
Erik Boasson
e841e4bf94
add back in the broken filter and query condition support
...
the implementation was and is terrible, but without it too many tests fail
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-26 20:05:18 +08:00
Erik Boasson
791a0efe7e
replace some implementation dependent types in protocol message specifications
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-26 16:26:30 +08:00
Erik Boasson
a25f683bcf
abstract the internal representation of a sample
...
besides the old state being in dire need of cleaning up, this also paves the way for having any number of different sample representations in the system
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-26 16:25:26 +08:00
Jeroen Koekkoek
8fc9535316
Terminate address filter with OS_AF_NULL instead of 0 (AF_UNSPEC)
...
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2018-10-24 22:32:27 +02:00
Jeroen Koekkoek
25198e565b
Rename os_sockaddr_size to os_sockaddr_get_size for consitency
...
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2018-10-24 15:53:29 +02:00
Jeroen Koekkoek
6b41dada9d
Fix compiler warnings
...
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2018-10-19 17:35:08 +02:00
Jeroen Koekkoek
7ba3bca087
Change socket function signatures to use os_sockaddr
...
* Consolidated and cleaned up some (duplicate) functions.
* Removed some unused functions that did not make sense to keep around.
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2018-10-19 17:00:15 +02:00
Jeroen Koekkoek
458b1df3f7
Replace os_sockQueryInterfaces by os_getifaddrs
...
Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
2018-10-19 16:58:40 +02:00
Erik Boasson
bb92294f4e
Let dds_create_participant determine domain id if config specifies "any" (new default)
...
Note: DDS_DOMAIN_DEFAULT with a configuration specifying "any" results in domain 0.
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-10-14 14:02:47 +08:00
Erik Boasson
feb5ba647e
handle threads stopping while trying to get a stack trace
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
30fe3dc803
disable multicast when selected interface doesn't support it
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
5edd55bc64
when closing trace file check for stdout or stderr
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
d76a537bb6
explicitly initialising all fields of struct msghdr instead of memset saves a noticeable amount of time
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
4f0b9cb471
improve performance by allowing multiple receive threads and avoiding multiplexing I/O
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
508d56b427
should not reschedule SPDP event if there is no SPDP writer
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
cf754b0141
add one final trace line after DDSI stack shuts down
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
0873f4a401
use kqueue for input multiplexing on macOS
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
48d770d40f
return false instead of crashing when invalid addresses are passed to ddsi_is_mcaddr/ddsi_is_ssm_mcaddr
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
bb8d3d808c
remove some memsets for unnecessarily clearing padding
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
e84e644702
remove unused global mutex
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-09-21 11:00:43 +02:00
Erik Boasson
b7487b18a6
stricter warning checks and the corresponding fixes
...
Signed-off-by: Erik Boasson <eb@ilities.com>
2018-08-09 09:23:03 +02:00