I forgot to put the closing ) after the header... should go on a line by
itself
> Wed Apr 05 2017 05:12:19 PM EDT from bennabiy @ Uncensored Subject: Re:
>Status?
>
>
>
>And to note, other IMAP4rev1 servers I connect to issue the whole response
>before sending the headers (or message, etc)
>
>so the response should be
>
>
>>
>>
>>command: A007 UID FETCH 375286, 145418 (RFC822.SIZE RFC822.HEADER
>>FLAGS)
>>
>>response: * 5 FETCH (UID 375286 RFC822.SIZE 3223 FLAGS (\Answered
>>\Seen) RFC822.HEADER {331} <header here>
>>
>>
>
>
>
>
>
>
>
>> Wed Apr 05 2017 12:47:55 PM EDT from bennabiy @ Uncensored Subject: Re:
>>Status?
>>
>>
>>
>>Here is a pastebin of a session with highlighting indicating the places
>>where trouble is caused...
>>
>>https://pastebin.mozilla.org/9018063
>>
>>Notice that the return from citserver on lines 41 and 42 should all be on
>>one line with no \r \n between them. Some clients are erroring because they
>>never see the final ) of line 50 as the completion of the fetch.
>>> Wed Apr 05 2017 12:39:01 PM EDT from IGnatius T Foobar @ Uncensored
>>>Subject: Re: Status?
>>>
>>>
>>>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
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
>
>