That's a little confusing but I'll look at it later and try to pick it apart. The ideal situation would be if you could give me the full RFC822 source of a message that produces the problem (redacted of private information if necessary) along with the IMAP command you are sending. Then if we can determine the difference between the expected result and the actual result, that should be enough to produce a fix. And now for a public service announcement to my fellow Citadel developers.
I've just finished overhauling all of the modules which perform outbound polling over the network. Originally we had what I will call Gen 1 pollers, which implemented all of the protocol handlers in-tree. This was less than ideal. Then we moved to Gen 2 pollers, which were comprised of a complex matrix of asynchronous event-driven callbacks. The new pollers, which I am calling Gen 3 pollers (with one exception, which I intend to correct) are based on one single principle: "let libcurl do all the work." This may seem like a step backward because it returns to the single-threaded model. And I want to say in advance to the developers who worked on the asynchronous code: this is NOT a sleight towards you or to the time spent writing the code. I love you, you're a pepper, but the code is just too complex for me to work with and maintain. By letting libcurl do all the work we reduced many thousands of lines of code to just a few hundred, and removed two dependencies from the build. Maybe it's just me who has trouble with the maze of callbacks. Just know that the decision was not made lightly and I really really hope that the developers whose code was removed will not be upset about it. Now for an exception to the rule. There is one poller, serv_networkclient.c , that looks more like a Gen 1 poller than a Gen 3 poller. This is ugly and I don't like it either, but since libcurl (understandably) doesn't have a handler for our protocol, there wasn't a choice. Consider it temporary. In the future I want to eliminate the idea of Citadel nodes polling each other completely. We will either encapsulate room sharing packets inside email messages and deliver them over SMTP, or even better, share rooms using NNTP so the other node doesn't have to be a Citadel at all. Priorities now: 1. Fix the issues bennabiy is indicating, one at a time and in order of priority 2. Get back to building WebCit-NG