Skip to content

server_license module requires non obvious and error-prone control flow #269

@CBenoit

Description

@CBenoit

LICENSE_ERROR_MESSAGE licensing packets should not be returned as errors by the parser.
Such packets should be handled by the caller, and the caller is responsible for turning those into Result::Err if necessary.
It should be possible to decode a LICENSE_ERROR_MESSAGE structure like any other PDU.
Otherwise it requires the caller to match on the error kind in order to check for variants that are not actual errors (notably because of the protocol-level error code STATUS_VALID_CLIENT), and it makes the flow of control harder to write correctly and less obvious, i.e.: using the error variant for control flow is an anti-pattern the same way that using exceptions for control flow in languages such as C# or Java is an anti-pattern.
See ConnectionConfirm from the nego module for prior art.

Prior bug caused by this pattern: #268

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-coreArea: Core tierA-technical-debtArea: Internal cleanup workP-mediumMedium prioritybugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions