MSN is not disconnecting when logging out of the XMPP client

…or even just logging off the transport. Remote users still sees us as on line.

Not seeing anything on the wire via Ethereal to indicate sockets are being closed and netstat still shows established connections to msn even with no users logged on.

Ack, that’‘s no good. You don’‘t happen to be seeing any stracetracks or anything do you? I tested this pretty thoroughly on my end and can not duplicate it. I wonder what’'s triggering the MSN login to be “stuck” logged in?

Nothing out of the ordinary in the logs. With debug turned on, I do see a “A final resource has gone offline” and a “Logging out of MSN gateway” message.

This is pretty recent, maybe withing the last few days.

I’'ll keep nosing around.

Message was edited by: gtj

Maybe MSN was just sad that you were leaving and kept a momento of you. ;D

…er or not =)

Well, it’‘s not disconnecting because MSNSession.logOut() isn’'t calling msnMessenger.logout().

It’'s not doing that because TransportSession.isLoggedIn() is returning false.

It’'s doing that because MSNListener.loginCompleted() is never getting called.

So, it’'s back to the JML code I go.

OK, I tried but it’'s your bug after all.

Notice anything strange about the first 2 lines of each method???

/**
     * Log in to MSN.
     *
     * @param presenceType Type of presence.
     * @param verboseStatus Long representation of status.
     */
    public void logIn(PresenceType presenceType, String verboseStatus) {
        setLoginStatus(TransportLoginStatus.LOGGING_IN);
        if (!this.isLoggedIn()) {
            msnMessenger.getOwner().setInitStatus(((MSNTransport)getTransport()).convertJabStatusToMSN(presenceType));
            msnMessenger.setLogIncoming(false);
            msnMessenger.setLogOutgoing(false);
            msnMessenger.addListener(new MSNListener(this));
            msnMessenger.login();
        }
    }     /**
     * Log out of MSN.
     */
    public void logOut() {
        setLoginStatus(TransportLoginStatus.LOGGING_OUT);
        if (this.isLoggedIn()) {
            msnMessenger.logout();
        }
        Presence p = new Presence(Presence.Type.unavailable);
        p.setTo(getJID());
        p.setFrom(getTransport().getJID());
        getTransport().sendPacket(p);
        setLoginStatus(TransportLoginStatus.LOGGED_OUT);
    }

HAHAAHAHHAA Dammit…

Fixing that now.

:pWorking now, thanks.