Clean up representation of discovery messages
* Remove the "plist" and "rawcdr" abuse of the "serdata_default" sample representation. * Introduce a new "plist" topic type and a new "pserop" topic type. The former represents parameter lists as used in discovery, the second arbitrary samples using the serialiser in ddsi_plist.c. * Introduce sertopics for each of the built-in "topics" used by the DDSI discovery protocol using the two new topic types, and reference these in the readers/writers used in discovery. * Construct and deconstruct the discovery message by using the conversion routines for these sample types, rather than fiddling with, e.g., the baroque interface for adding parameter lists to messages. * As a consequence, it introduces standardized logging of received and transmitted discovery data and eliminates the annoying "(null)/(null)" and "(blob)" descriptions in the trace. * Limits the dumping of octet sequences in discovery data to the first 100 bytes to make the embedded certificates and permissions documents (somewhat) manageable. * Eliminates the (many) null pointer checks on reader/writer topics. * Fixes the printing of nested sequences in discovery data (not used before) and the formatting of GUIDs. Various interfaces remain unchanged and so while this removes cruft from the core code, it moves some of it into the conversion routines for the new topic types. It also now allocates some memory when processing incoming discovery data, whereas before it had no need to do so. Allowing for aliasing of data in the new sertopics and adding a way to initialize these specific types on the stack (both minor changes) suffices for eliminating those allocations. Signed-off-by: Erik Boasson <eb@ilities.com> Check actual topic type before "downcasting" Signed-off-by: Erik Boasson <eb@ilities.com> Free the memory we own and is actually allocated Signed-off-by: Erik Boasson <eb@ilities.com> Ignore logging newlines if nothing is buffered Signed-off-by: Erik Boasson <eb@ilities.com> Suffix data with "(trunc)" one byte earlier The sample printing code changed over time and now stops as soon as it can once it has filled up the buffer. As the return value is simply the number of bytes written, if that number is equal to buffer size less one (because of the terminating nul) it may or may not have been truncated, but the likelihood is that it has been. So add the "(trunc)" suffix once that point has been reached. Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
b18fd395d3
commit
4f3cbf7a1c
38 changed files with 1489 additions and 1252 deletions
|
@ -522,7 +522,6 @@ the discovery of peers.</p></xs:documentation>
|
|||
<xs:all>
|
||||
<xs:element minOccurs="0" ref="config:DSGracePeriod"/>
|
||||
<xs:element minOccurs="0" ref="config:DefaultMulticastAddress"/>
|
||||
<xs:element minOccurs="0" ref="config:EnableTopicDiscovery"/>
|
||||
<xs:element minOccurs="0" ref="config:ExternalDomainId"/>
|
||||
<xs:element minOccurs="0" ref="config:MaxAutoParticipantIndex"/>
|
||||
<xs:element minOccurs="0" ref="config:ParticipantIndex"/>
|
||||
|
@ -556,12 +555,6 @@ Discovery/SPDPMulticastAddress.</p><p>The default value is:
|
|||
&quot;auto&quot;.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="EnableTopicDiscovery" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>Do not use.</p><p>The default value is: &quot;true&quot;.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ExternalDomainId" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue