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
  • Reverse if-guard to remove indentation ...
    6cd50fa2
    Diff with 'ignore whitespace' looks clean.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix name F_flashmq_auth_plugin_periodic_event_v1
    5a7d3066
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Implement extended authentication ...
    569b87ee
    This also contains some fixes/unifications for traditional
    authentication, error handling specifically.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Quiet warnings about not (yet) used variables
    13611a98
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Subscription identifiers in subscribe is protocol error ...
    0ffa0511
    The CONACK indicated that it's not supported, and the specs say to issue
    a disconnect when they're used after all.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix using uninitialized session expiry interval in disconnect
    e4b43df7
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Don't handle packets from clients we're closing ...
    f255c526
    This should prevent stale data from old clients from manipulating the
    session.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Disconnect clients with good reason code ...
    d125dc49
    On server shutdown and when taking over a session.
    
    On disconnect, wills are queued first, we wait for the queueing to be done, then
    initiate disconnect.
    
    When TCP buffers are full and fds are not reported by epoll, the thread
    loop still exits and clients are just closed on exit.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Disconnect with 'topic alias invalid' when going out of range
    efc917f9
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix resetting session expire timeout on reloading state ...
    3f53ee96
    I didn't count the seconds it was already waiting. It does now.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Support saving wills into the session db ...
    ebe7c845
    This required a special type WillPublish to make this easier and more
    logical.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix incorrect use of variable 'dup' ...
    58ec60b2
    It erroneously referred to the system function 'dup' now...
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • 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 »