Skip to content

System crash when enabling DCC-R after decoders have registered via other protocols #1

@git4dcc

Description

@git4dcc

Description:
The system terminates ungracefully if DCC-R is enabled after decoders have already performed a logon using a different protocol.

Root Cause:
The DCC-R logon procedure instantiates a specific C++ class that differs from the class used by other logon protocols. When DCC-R is enabled post-logon, the system incorrectly assumes that existing decoder objects are instances of the DCC-R-specific class. This type mismatch/invalid cast leads to a fatal crash.

Steps to Reproduce:

  • Start the system without DCC-R enabled. > rtbproxy --dccr 0
  • Allow a DCC-R capable decoder to log on via a different protocol.
  • Enable DCC-R while the system is running. > rtbclient --enable dccr
  • System crashes/terminates.

Workaround:

  • Ensure that DCC-R is enabled at system startup. This forces the system to instantiate DCC-R decoders with the correct class from the beginning.
  • Start the proxy with the DCC-R flag enabled (Stable Configuration):
    > rtbproxy --dccr 1

Proposed Fix:
Refactor DCC and DCC-R into a single C++ class.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions