I have just checked in a fix for the --daemon brokenness on the 1.2.x
branch. I'm not sure when it'll show up as a 1.2.2 release, probably
either tomorrow morning or sometime next week.
In the meantime, I've also done some work on 1.3. The first goal is to
clean up and simplify things. So far some of the things I've done are:
Improved the handling of C-style strings, added counts for the number
of allocated strings (and fixed a minor leak), changed some of the
conventions for packet deallocation to make packet handlers simpler.
I've also deleted the complicated streamed s-exp parser.
I'd like to remove or unify some more classes (make class-map creates
a list of classes), classes with no parents and childs, and classes
with exactly one child, are candidates for deletion. gcov is also a
nice tool for finding dead or obsolete code.
And I think I should simplify the main() functions, doing as much work
as possible (in particular reading keyfiles) before invoking io_run().
That will both make it easier to report startup errors accurately, and
make the code easier to follow.
Regards,
/Niels