• The only mutable session data of a client is QoS related, so when we're
    copying sessions (for saving them), we need to lock the QoS data,
    because that gets modified from active client traffic in worker threads.
    
    Note: not super well tested at this point, nor was I ever able to
    trigger actual errors despite long stress testing, so it's a theoretical
    fix.
    Wiebe Cazemier authored
     
    Browse File »



  • There were bugs in which authentication object was used when, causing
    threadings bugs. Instead of getting from the 'sender', we can just store
    a thread local pointer.
    Wiebe Cazemier authored
     
    Browse File »
  • Files are simple serialized bytes prefaced by lengths. File is hashed to
    verify integrity. This was also a good way preventing unexpected errors
    when trying to crash the parser by having it load a different file.
    
    This change includes some refactoring that was necessary:
    
    - It 'fixes' looking at the wrong thread's authentiction. This is still
      wrong though. It will be fixed by a thread local pointer in the next
      commit.
    - Deadlocks with yourself are handled in rwlockguard.
    - QoSPacketQueue is now a class.
    - Probably other tweaks.
    Wiebe Cazemier authored
     
    Browse File »