Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java')
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java
index e55ecde8d..08a951e45 100644
--- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java
+++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java
@@ -47,8 +47,8 @@ public class ECFConnection implements ISynchAsynchConnection {
*
*/
private static final String GOOGLE_TALK_HOST = "talk.google.com";
- public static final String CLIENT_TYPE = "ECF_XMPP";
- public static final boolean DEBUG = Boolean.getBoolean(System.getProperty("smack.debug", "false"));
+ public static final String CLIENT_TYPE = "ecf.";
+ public static final boolean DEBUG = Boolean.getBoolean("smack.debug");
protected static final String STRING_ENCODING = "UTF-8";
public static final String OBJECT_PROPERTY_NAME = ECFConnection.class.getName() + ".object";
@@ -60,6 +60,7 @@ public class ECFConnection implements ISynchAsynchConnection {
private boolean isStarted = false;
private String serverName;
private int serverPort = -1;
+ private String serverResource;
private final Map properties = null;
private boolean isConnected = false;
private Namespace namespace = null;
@@ -115,6 +116,8 @@ public class ECFConnection implements ISynchAsynchConnection {
this.namespace = ns;
this.google = google;
this.secure = secure;
+ if (DEBUG)
+ XMPPConnection.DEBUG_ENABLED = true;
}
public ECFConnection(boolean google, Namespace ns, IAsynchEventHandler h) {
@@ -152,6 +155,11 @@ public class ECFConnection implements ISynchAsynchConnection {
final String username = jabberURI.getUsername();
serverName = jabberURI.getHostname();
serverPort = jabberURI.getPort();
+ serverResource = jabberURI.getResourceName();
+ if (serverResource == null || serverResource.equals(XMPPID.PATH_DELIMITER)) {
+ serverResource = getClientIdentifier();
+ jabberURI.setResourceName(serverResource);
+ }
try {
if (google) {
if (secure) {
@@ -181,7 +189,7 @@ public class ECFConnection implements ISynchAsynchConnection {
connection.addPacketListener(packetListener, null);
connection.addConnectionListener(connectionListener);
// Login
- connection.login(username, (String) data, CLIENT_TYPE);
+ connection.login(username, (String) data, serverResource);
isConnected = true;
} catch (final XMPPException e) {
if (e.getMessage().equals("(401)"))
@@ -191,6 +199,10 @@ public class ECFConnection implements ISynchAsynchConnection {
return null;
}
+ private String getClientIdentifier() {
+ return CLIENT_TYPE + handler.getEventHandlerID().getName();
+ }
+
public void sendPacket(Packet packet) throws XMPPException {
if (connection != null)
connection.sendPacket(packet);

Back to the top