Mal so nebenbei, dein Code ist ziemlich...umständlich geschrieben, das was du eigentlich machst ist mehr oder weniger ein Codeschnipsel und lässt sich auch in knapp 50 Zeilen...zeigen...
Hier mal ein Vorschlag: http://pastebin.com/M92ydF4k
Mal nur so als Vergleich, beide Codes machen das selbe...
Deine Zeilen: 317
Meine Zeilen: 54
...ja ich weiß vieles liegt an den unnötigen Callbacks und 5 Zeilen an den Kommentaren, trotzdem...würde das noch einen großen Unterschied machen.
Ich will hier keine Kritik äußern und blöd rummeckern, ich wollte nur mal zeigen, dass man das hätte auch anders schreiben können.
Mein Code soll dich nur mal zum Nachdenken anregen und vielleicht lernst du daraus noch etwas...
PS: Die Include sscanf2 wird gar nicht genutzt...
mfg. 