annotate oscpack/TODO @ 101:52e44ee1c791 tip master

enabled all scores in autostart script
author Rob Canning <rc@kiben.net>
date Tue, 21 Apr 2015 16:20:57 +0100
parents 0ae87af84e2f
children
rev   line source
rob@76 1 TODO:
rob@76 2
rob@76 3 - consider adding the local endpoint name to PacketListener::PacketReceived() params
rob@76 4
rob@76 5 - consider adding ListenerThread class to support old seperate thread listener functionality, something like:
rob@76 6
rob@76 7 class UdpSocketListenerThread{
rob@76 8 public:
rob@76 9 UdpSocketListenerThread( UdpSocket& socket, Listener *listener );
rob@76 10 UdpSocketListenerThread( UdpSocketReceiveMultiplexer *mux );
rob@76 11 ~UdpSocketListenerThread();
rob@76 12
rob@76 13 void Run();
rob@76 14 void Stop();
rob@76 15 };
rob@76 16
rob@76 17 - work out a way to make the parsing classes totally safe. at a minimum this
rob@76 18 means adding functions to test for invalid float/doublevalues,
rob@76 19 making sure the iterators never pass the end of the message, ...
rob@76 20 (passing end of message can happen if:
rob@76 21 - too many args in type tags
rob@76 22 a. typetags overflow message size
rob@76 23 b. args fulfilling typetags overflow message size
rob@76 24 - strings too long or not terminated correctly
rob@76 25 - blobs too long or not terminated correctly
rob@76 26
rob@76 27 if the message was fully checked during construction, the end() iterator
rob@76 28 could be moved back until only arguments which fit withing size() may
rob@76 29 be interated (this could be none). A flag could be set to indicate that
rob@76 30 something was wrong.
rob@76 31
rob@76 32 - other packet badness could include:
rob@76 33 - time tags too far into the future (the scheduler should deal with
rob@76 34 that i guess).
rob@76 35 - message address patterns which aren't correctly terminated
rob@76 36
rob@76 37 - improve the ability to parse messages without tags (SC uses methods which
rob@76 38 get the data and advance the iterator in one step.)
rob@76 39 - Check* could be modified to do this - ie if typetags are not present
rob@76 40 it could check that reading the field won't escape the message size
rob@76 41 and return the data, or return false if some consistency
rob@76 42 constraint is violated.
rob@76 43 (or alternately drop support for messages without type tags)
rob@76 44
rob@76 45
rob@76 46 - add a method to discard an inprogress message if it gets half
rob@76 47 constructed and the buffer is full in OutboundPacket
rob@76 48
rob@76 49 - write a stress testing app which can send garbage packets to try to flush out other bugs in the parsing code.
rob@76 50
rob@76 51
rob@76 52