Skip to content

v1.004

Compare
Choose a tag to compare
@Dadido3 Dadido3 released this 11 Feb 16:21
· 14 commits to master since this release

A rather big update from v1.003.
The server handles some stuff differently, but the API is backwards compatible.
From this version on the server conforms to the WebSocket standard, at least as much as possible.

There are some failing test cases that can't be solved because of how PureBasic supports unicode and text encodings, this would either need the use of third party libraries or the use of the operating system's API.

  • Use Autobahn|Testsuite for fuzzing
  • Fix most test cases
  • Fix how server closes the connection on client request
  • Fix data frame length encoding for transmitted frames
  • Limit the payload size of control frames (defined by websocket standard)
  • Free semaphore right before the server thread ends, not when the event thread ends
  • Move built in frame actions (ping and disconnect request handling) into Event_Callback so the actions stay in sync with everything else
  • Send signal to event thread every time a frame has been sent
  • Use local pointer to frame data in Event_Callback
  • Get rid of unnecessary second FirstElement()
  • Check if control frames are fragmented
  • Don't execute frame actions on malformed frames
  • Add a fragmented payload limit
  • Add a FrameData field that contains the raw frame Data
  • Add HandleFragmentation parameter to Create
  • Add Fragments List to client, that stores a fragment frame series
  • Add logic to combine fragmented frames
  • Allow fragmented messages to have a payload of 0 length
  • Add close status code enumeration
  • Add status code and reason to client disconnect
  • Add Client_Disconnect_Mutexless
  • Use default disconnect reason of 0, which means no reason at all
  • Remove all other (unsent) TX_Frame elements before sending a disconnect control frame
  • Add reason to Client_Disconnect
  • Close connection with correct status code in case of error