• Type: Bug
    • Resolution: Fixed
    • Priority: Major
    • None
    • Affects Version/s: 3.1.1
    • Component/s: core
    • None
    • Environment:

      Normative

    • Hide

      Remove lines 430-431 in Chapter 2 , which deal with protocol violations.

      Add terminology definitions;

      Protocol Violation: A Control Packet that is not constructed or flowed in a way which conforms to this specification.

      Transient Error: A transient error is an error which may not re occur if the action that caused it is repeated.
      Non Normative comment.
      For example, an authorization failure of a PUBLISH Packet might not re occur the next time a similar PUBLISH Packet
      is received, if the administrator has authorized the client to make the publication in the mean time.

      Rewrite Section 4.8 line 1557 on as follows:

      4.8 Handling errors.

      Unless stated otherwise, if either the Server or Client encounters a Protocol Violation, it MUST close the Network Connection on which it received that Control Packet which caused the Protocol Violation. [MQTT-4.8.0-1].

      If the Client or Server encounters a Transient Error while processing an inbound Control Packet it MUST close the Network Connection on which it received that Control Packet [MQTT-4.8.0-2]. If a Server detects a transient error it SHOULD NOT disconnect or have any other affect on its interactions with any other Client.

      Show
      Remove lines 430-431 in Chapter 2 , which deal with protocol violations. Add terminology definitions; Protocol Violation: A Control Packet that is not constructed or flowed in a way which conforms to this specification. Transient Error: A transient error is an error which may not re occur if the action that caused it is repeated. Non Normative comment. For example, an authorization failure of a PUBLISH Packet might not re occur the next time a similar PUBLISH Packet is received, if the administrator has authorized the client to make the publication in the mean time. Rewrite Section 4.8 line 1557 on as follows: 4.8 Handling errors. Unless stated otherwise, if either the Server or Client encounters a Protocol Violation, it MUST close the Network Connection on which it received that Control Packet which caused the Protocol Violation. [MQTT-4.8.0-1] . If the Client or Server encounters a Transient Error while processing an inbound Control Packet it MUST close the Network Connection on which it received that Control Packet [MQTT-4.8.0-2] . If a Server detects a transient error it SHOULD NOT disconnect or have any other affect on its interactions with any other Client.

      A few comments ago I mused about whether 4.8 Handling protocol violations listed all the protocol violations in the draft.

      Turns out it doesn't.

      Looking under 3.10.1, a value can be malformed and the server MUST close the network connection. That sounds like a protocol violation to me.

      On looking further, similar "malformed" statement occur at: 3.8.3 Payload, 3.8.1 Fixed Header, 3.6.1 Fixed header.

      If those are protocol violations and as normative statements I can't see them being anything else, then they should be reported under 4.8.

            Assignee:
            Unassigned
            Reporter:
            Patrick Durusau
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: