How tested is djabberd?

Brad Fitzpatrick brad at danga.com
Wed Jul 5 07:24:38 UTC 2006


On Wed, 5 Jul 2006, Martin Atkins wrote:

> > If it can, and the client didn't get the message, then the server should
> > mark the user as unavailable and store the message it just sent, to
> > resend it when it sees the client back online.
> >
>
> What I would expect to happem is either:
>   * The TCP driver retransmits the packet a few times and then considers
> the client to be dead and closes the connection, or...
>   * The dial-up user's IP address has now been assigned to a different
> customer, so it'll send a RST packet back to indicate that it doesn't
> know anything about this TCP stream.
>
>  From what others have been saying, though, it seems that I'm wrong
> about the first point in practice.

read:

man 7 socket
man 7 tcp
struct tcp_info in /usr/include/linux/tcp.h

And anytime we can't just ask the TCP stack its state due to portability
reasons, we can just send a dummy IQ stanza to the client for it to
ack in XML (as opposed to TCP layer ACK), and we can fall back to that
when guaranteed message delivery is required.  I could imagine three
levels:

    0 - don't care.
    1 - DEFAULT: guaranteed delivery if your OS supports tcp info (Linux,
        etc)
    2 - force guaranteed delivery using IQ packets (overhead, not default)

Or something.

I'm tired, though.  Plenty of solutions exist.  No need to worry.

- Brad


More information about the Djabberd mailing list