mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-27 00:32:07 +01:00
Added login method to make sending presence optional (SMACK-52).
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@2496 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
parent
1d50de1107
commit
51f29937d2
1 changed files with 34 additions and 9 deletions
|
@ -226,8 +226,8 @@ public class XMPPConnection {
|
||||||
/**
|
/**
|
||||||
* Logs in to the server using the strongest authentication mode supported by
|
* Logs in to the server using the strongest authentication mode supported by
|
||||||
* the server, then set our presence to available. If more than five seconds
|
* the server, then set our presence to available. If more than five seconds
|
||||||
* elapses in each step of the authentication process without a response from
|
* (default timeout) elapses in each step of the authentication process without
|
||||||
* the server, or if an error occurs, a XMPPException will be thrown.
|
* a response from the server, or if an error occurs, a XMPPException will be thrown.
|
||||||
*
|
*
|
||||||
* @param username the username.
|
* @param username the username.
|
||||||
* @param password the password.
|
* @param password the password.
|
||||||
|
@ -240,8 +240,8 @@ public class XMPPConnection {
|
||||||
/**
|
/**
|
||||||
* Logs in to the server using the strongest authentication mode supported by
|
* Logs in to the server using the strongest authentication mode supported by
|
||||||
* the server, then sets presence to available. If more than five seconds
|
* the server, then sets presence to available. If more than five seconds
|
||||||
* elapses in each step of the authentication process without a response from
|
* (default timeout) elapses in each step of the authentication process without
|
||||||
* the server, or if an error occurs, a XMPPException will be thrown.
|
* a response from the server, or if an error occurs, a XMPPException will be thrown.
|
||||||
*
|
*
|
||||||
* @param username the username.
|
* @param username the username.
|
||||||
* @param password the password.
|
* @param password the password.
|
||||||
|
@ -251,7 +251,30 @@ public class XMPPConnection {
|
||||||
* to the serrver.
|
* to the serrver.
|
||||||
*/
|
*/
|
||||||
public synchronized void login(String username, String password, String resource)
|
public synchronized void login(String username, String password, String resource)
|
||||||
throws XMPPException {
|
throws XMPPException
|
||||||
|
{
|
||||||
|
login(username, password, resource, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logs in to the server using the strongest authentication mode supported by
|
||||||
|
* the server, and optionally sends an available presence. if <tt>sendPresence</tt>
|
||||||
|
* is false, a presence packet must be sent manually later. If more than five seconds
|
||||||
|
* (default timeout) elapses in each step of the authentication process without a
|
||||||
|
* response from the server, or if an error occurs, a XMPPException will be thrown.
|
||||||
|
*
|
||||||
|
* @param username the username.
|
||||||
|
* @param password the password.
|
||||||
|
* @param resource the resource.
|
||||||
|
* @param sendPresence if <tt>true</tt> an available presence will be sent automatically
|
||||||
|
* after login is completed.
|
||||||
|
* @throws XMPPException if an error occurs.
|
||||||
|
* @throws IllegalStateException if not connected to the server, or already logged in
|
||||||
|
* to the serrver.
|
||||||
|
*/
|
||||||
|
public synchronized void login(String username, String password, String resource,
|
||||||
|
boolean sendPresence) throws XMPPException
|
||||||
|
{
|
||||||
if (!isConnected()) {
|
if (!isConnected()) {
|
||||||
throw new IllegalStateException("Not connected to server.");
|
throw new IllegalStateException("Not connected to server.");
|
||||||
}
|
}
|
||||||
|
@ -329,7 +352,9 @@ public class XMPPConnection {
|
||||||
roster.reload();
|
roster.reload();
|
||||||
|
|
||||||
// Set presence to online.
|
// Set presence to online.
|
||||||
packetWriter.sendPacket(new Presence(Presence.Type.AVAILABLE));
|
if (sendPresence) {
|
||||||
|
packetWriter.sendPacket(new Presence(Presence.Type.AVAILABLE));
|
||||||
|
}
|
||||||
|
|
||||||
// Indicate that we're now authenticated.
|
// Indicate that we're now authenticated.
|
||||||
authenticated = true;
|
authenticated = true;
|
||||||
|
@ -739,8 +764,8 @@ public class XMPPConnection {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Create a new debugger instance. If an exception occurs then disable the debugging
|
// Create a new debugger instance. If an exception occurs then disable the debugging
|
||||||
// option
|
// option
|
||||||
try {
|
try {
|
||||||
Constructor constructor =
|
Constructor constructor =
|
||||||
debuggerClass.getConstructor(
|
debuggerClass.getConstructor(
|
||||||
|
@ -808,7 +833,7 @@ public class XMPPConnection {
|
||||||
}
|
}
|
||||||
authenticated = false;
|
authenticated = false;
|
||||||
connected = false;
|
connected = false;
|
||||||
|
|
||||||
throw ex; // Everything stoppped. Now throw the exception.
|
throw ex; // Everything stoppped. Now throw the exception.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue