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
05 May, 2022
2 commits
  • Fix broken lock guards
    71ffc7d5
    Wiebe Cazemier authored
    2022-05-05 22:14:50 +0200  
    Browse Code »
  • Use ordered map for session removals ...
    20b1d0a0
    This is way faster.
    Wiebe Cazemier authored
    2022-05-05 22:14:50 +0200  
    Browse Code »

03 May, 2022
1 commit
  • Use determinstic strict weak ordering for timed events ...
    c5f8e527
    This should fix corruption. There were inexplicable stalls of timed
    events, and the debugger showed the names were all corrupted. std::sort
    can do that sort of thing, apparently.
    Wiebe Cazemier authored
    2022-05-03 21:30:13 +0200  
    Browse Code »

02 May, 2022
3 commits
  • Print clean session / clean start in client repr
    b6284120
    Wiebe Cazemier authored
    2022-05-02 21:30:04 +0200  
    Browse Code »
  • Improve logging wrt to session expiration
    f3a196e3
    Wiebe Cazemier authored
    2022-05-02 21:16:21 +0200  
    Browse Code »
  • Allow lower minimum session life ...
    2cd4a3eb
    And fix off-by-one error.
    Wiebe Cazemier authored
    2022-05-02 20:25:40 +0200  
    Browse Code »

01 May, 2022
34 commits
  • Update copyright date in help text
    6ab66f3a
    Wiebe Cazemier authored
    2022-05-01 18:54:50 +0200  
    Browse Code »
  • Merge branch 'mqtt5' ...
    3a8b61ae
    This implements the first testing version of MQTT5 support.
    Wiebe Cazemier authored
    2022-05-01 18:48:59 +0200  
    Browse Code »
  • Check reserved bits in AUTH packet
    ae1d102f
    Wiebe Cazemier authored
    2022-05-01 18:21:51 +0200  
    Browse Code »
  • Check reponse topic for invalid characters
    273fc26d
    Wiebe Cazemier authored
    2022-05-01 18:00:26 +0200  
    Browse Code »
  • Document PublishBase::getLengthWithoutFixedHeader()
    5a2f52b7
    Wiebe Cazemier authored
    2022-05-01 17:35:02 +0200  
    Browse Code »
  • Flow control based on receive maximum ...
    7870dc8a
    It merely drops packets when they exceed it. The specs are unclear about
    whether you're supposed to delay transmission until the quota is
    non-negative again. I decided against it because of increased
    complexity, and because on a continously overloaded client, this makes
    no sense.
    
    Effectively, this formalizes the 'max qos pending' mechanism that was
    already in place.
    
    It also includes PUBACK/PUBREL/PUBCOMP error handling, because that
    needed to be done for proper quota control.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Remove assert that also has an exception ...
    ac53fea0
    The only thing it did was false trip the fuzzer.
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Add two mqtt5 sessions for fuzzing
    2ec623d5
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Fix reading disconnect packets without reason code
    74a37991
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • Reordered packet handling ifs
    4a702421
    Wiebe Cazemier authored
    2022-05-01 17:32:10 +0200  
    Browse Code »
  • 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 »