However, I don't see why that type of loop would not occur when posting with the web interface too.
Because the web interface is the part that initiates the crossposting, but the crossposts themselves are done via the XML-RPC interface. So when a crosspost is done, it skips the web interface, thus guaranteeing that no additional crossposts will happen.
...That really isn't very clear, is it? Think of it this way: a running Dreamwidth instance is both a server and client. It's a server in that it can it can create and serve up journal entries via a standard protocol. It's a client in that it can display those entries in a nice format to the user, and can also put up a web form for posting new entries, and then translate the submitted form into a properly formed protocol request to send to the server.
So the crossposter is actually implemented in the client part of Dreamwidth, not the server part. Which is why if you use a different client, be it an external standalone client or just a different interface (like the email gateway), it doesn't function.
Re: LogJam porting question: prop_xpost_check
Because the web interface is the part that initiates the crossposting, but the crossposts themselves are done via the XML-RPC interface. So when a crosspost is done, it skips the web interface, thus guaranteeing that no additional crossposts will happen.
...That really isn't very clear, is it? Think of it this way: a running Dreamwidth instance is both a server and client. It's a server in that it can it can create and serve up journal entries via a standard protocol. It's a client in that it can display those entries in a nice format to the user, and can also put up a web form for posting new entries, and then translate the submitted form into a properly formed protocol request to send to the server.
So the crossposter is actually implemented in the client part of Dreamwidth, not the server part. Which is why if you use a different client, be it an external standalone client or just a different interface (like the email gateway), it doesn't function.