This is probably a long shot, but...

So I've been trying to work on my third revision of my mIRC IRCd with server linking (also want to try and redo this in Python later on), and in the case of one test where I got linking and recursive squtting to process perfectly, I hit a wall when it came to net.burst.

Now, when a server connects it's supposed to send PASS->SERVER (apparently sending burst data is okay), wait for the "handshake" to be validated and receive a list of servers linked, glines, nicks, #chan BURST, etc.

Now my mentality here is that the server sends the data, I'm supposed to buffer it for processing in a hash table, buffer all the unmodified information my server knows around the handshake phase and send that, then eventually END_OF_BURST and EOB_ACK. (At least I'm hoping this is what is supposed to be done. I couldn't find any concrete answers on this, and looking at the ircu source code didn't help matters.)

But what I'm having trouble understanding is if the server is supposed to validate each item in the read buffer one-by-one then add it on the fly if it's okay, or if that only applies to servers and nicks and that chan BURST data needs to be copacetic before adding that, or if all of it is supposed to be validated one-by-one, and if everything is copacetic, go through each item again and add it?


What do you do at the end of the world? Are you busy? Will you save us?