Voici les états (j'en ai peut-être oublié un ou deux) :
enum State {
      STATE_READ_ID,
      STATE_CHECK_ID,
      STATE_READ_CODE,
      STATE_SET_NAMESPACE,
      STATE_ALLOC_BUFFER,
      STATE_SEARCH_ID,
      STATE_SELECT_BUFFER,
      STATE_SKIP_DATA_LEN,
      STATE_SEARCH_CODE,
      STATE_READ_LEN,
      STATE_SKIP_DATA,
      STATE_SET_PTR,
      STATE_END_DATA,
      STATE_READ_DATA,
      STATE_SET_LEN,
      STATE_REALLOC_BUFFER,
      STATE_WRITE_ID,
      STATE_WRITE_CODE,
      STATE_WRITE_LEN,
      STATE_WRITE_DATA,
      STATE_WRITE_DATA_LEN,
      STATE_END_STR,
      STATE_DONE,
      STATE_ERROR
   };
Pourquoi une machine à états ? Je pensais que cela m'aurait aidé à parcourir la mémoire tampon à la recherche d'une option existante.