Logo white

Peter M. Groen / FlashMQ

Sign in
  • Sign in
  • Project
  • Files
  • Commits
  • Network
  • Graphs
  • Milestones
  • Issues 0
  • Merge Requests 0
  • Labels
  • Wiki
  • Commits 453
  • Compare
  • Branches 1
  • Tags 0
  • FlashMQ
01 May, 2022
40 commits
  • Check all UTF8 strings in packet parsing for validity ...
    6473b379
    Also fix some bugs:
    
    - The password can be binary data.
    - The will topic is now also checked.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Use 'Publish' for retained instead of 'MqttPacket' ...
    1bca4cbb
    This is better in line with how the copy factory is meant to be used. It
    actually broke on the assert on 'externallyReceived' before.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Allow wills to be retained
    6158d91b
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Convert to storing Publish object for retained message ...
    75657bf5
    This allows easier saving of MQTT5 properties, for which a new file
    version for retained messages is created. It uses the packet parsing logic.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Send all non-delayed wills on exit ...
    515f796f
    This includes some logic to have threads finish their work before
    quitting.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix disconnect packet parsing ...
    3e13b436
    It went over boundry when there were no properties.
    
    Also changed will logic in disconnect: only clear it when it's a
    successful disconnect.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix various will things ...
    9c61bff7
    - Delay is properly counted from moment of disconnect.
    - When a session is picked up again, the will is not sent.
    - An actual fix to what I tried a few commits ago: fix sending will
      twice.
    
    This logic should make storing wills also easier.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Deal with username and/or password presence for various MQTT versions
    794a28bb
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Add MQTT5 disconnect handling
    d22ad6e1
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Defined a reason code for many errors ...
    193f509d
    I think it's very hard to distinguish between protocol error and
    malformed packet. It's kind of arbitrary...
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Add ability to send disconnect packets with code
    5f1d8259
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix session state issues ...
    4d957a3d
    The loop of pending messages was stuck.
    
    We saved a session expiry interval of 0. I may need to change that
    session copying idea.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix session.db magic file string
    d789ec01
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Load and store createdAt time of stored QoS packets ...
    ec518d7a
    Also fixes a bug in new interval calculation.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Store fixed header length in saved queued packet ...
    7be65e95
    And the TODOs are for the next thing: saving the createdAt date.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Have the MqttPacket constructor set client specific properties ...
    e69a2c35
    This prevents bugs because the calling context forgets it. A (small)
    downside is that I have to make the Publish argument non-const. But,
    that's exactly what it is then, so...
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Add some assert+doc about how packets are used ...
    163563e1
    Also fixed a length check bug.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Continue with idea to use parsed packets for loading from disk ...
    c652de5a
    Because clients can now also exist as dummy objects, I had to add some
    extra checks.
    
    Also split up handlePublish() and the new parsePublishData().
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Half idea of using the circular buffer to store packets ...
    6fed4d58
    I'm not sure how I'm continueing. I need a safe point.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Check for publish message expiration
    03fd22bd
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Replace app start time with queued session removal
    34929680
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Untested new format of saving sessions ...
    16119952
    But, this is a safe point before I will refactor it. I will remove the
    appStartTime and session last touched. With the new queued removals,
    this is no longer necessary.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix double publish of will
    41ee727a
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Start converting session file to v2, for properties
    65456655
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Incoming and outgoing max packet size
    ce161b1f
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • TODOs
    3d565018
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Test unsubscribe ...
    af89bf90
    Only mqtt3 though.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • This should fix ubsubscribes ...
    c0b67cfb
    Not tested yet.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Improve subacks
    a583c5f6
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Working on puback with reason codes ...
    ee79271a
    I'm simplying/merging the rec, comp and rel packets, but I'm not sure it will
    work. Committing as a safe point.
    
    Later: I got it done as planned. Testing qos > 0 and mqtt5 still needs
    to be done more.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Get the semantics of incoming and outgoing aliases correct
    98366c6d
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Deal with empty session for early client disconnect
    39c1873d
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Only make property builder on publish when necessary
    80cad8fe
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Use splitTopic also for determining copying the user properties
    b342be22
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Don't construct property builder unnecessarily
    eae1ed33
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Initiate topic alias to subscribers ...
    3022c275
    I think it's correct, but mosquitto_sub doesn't seem to support it, so I
    can't test.
    
    Also some other stuff I happen to see.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Beginning of topic aliases
    9dab7a48
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Mostly done with user properties in connect, publish and subscribe. ...
    8ce485ee
    And one line about correlation data that was a bug.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • More property handling, dummy and otherwise
    b0def7dc
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Dummy property handling in handlePublish
    9e29bb2a
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »