You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/01/02 19:52:06 UTC
svn commit: r1054458 - in /mina/vysper/branches/s2s/server/core/src:
main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/
main/java/org/apache/vysper/xmpp/server/
main/java/org/apache/vysper/xmpp/server/s2s/ test/java/org/apache/...
Author: ngn
Date: Sun Jan 2 18:52:06 2011
New Revision: 1054458
URL: http://svn.apache.org/viewvc?rev=1054458&view=rev
Log:
Implement verification of incoming dialback requests
Added:
mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/
mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGeneratorTest.java
- copied, changed from r1054300, mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/IdTest.java
Removed:
mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/IdTest.java
Modified:
mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbResultHandler.java
mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbVerifyHandler.java
mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnectorRegistry.java
mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java
mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java
Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbResultHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbResultHandler.java?rev=1054458&r1=1054457&r2=1054458&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbResultHandler.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbResultHandler.java Sun Jan 2 18:52:06 2011
@@ -29,7 +29,7 @@ import org.apache.vysper.xmpp.protocol.S
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
-import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.s2s.XMPPServerConnector;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
@@ -65,21 +65,37 @@ public class DbResultHandler implements
if(type == null) {
// start of dailback, respond
+ String streamId = sessionContext.getSessionId();
String dailbackId = stanza.getInnerText().getText();
Entity receiving = EntityImpl.parseUnchecked(stanza.getAttributeValue("from"));
Entity originating = serverRuntimeContext.getServerEnitity();
- // TODO implement dailback verification
-
- StanzaBuilder builder = new StanzaBuilder("result", NamespaceURIs.JABBER_SERVER_DIALBACK, "db");
- builder.addAttribute("from", originating.getDomain());
- builder.addAttribute("to", receiving.getDomain());
- builder.addAttribute("type", "valid");
-
- sessionContext.setInitiatingEntity(receiving);
- sessionStateHolder.setState(SessionState.AUTHENTICATED);
-
- return new ResponseStanzaContainerImpl(builder.build());
+ try {
+ XMPPServerConnector connector = serverRuntimeContext.getServerConnectorRegistry().connectForDialback(receiving, sessionContext, sessionStateHolder);
+
+ /*
+ <db:verify
+ from='target.tld'
+ id='417GAF25'
+ to='sender.tld'>
+ 38b501ec606752318f72ad53de17ac6d15f86257485b0d8f5d54e1f619e6b869
+ </db:verify>
+ */
+
+ StanzaBuilder verifyBuilder = new StanzaBuilder("verify", NamespaceURIs.JABBER_SERVER_DIALBACK, "db");
+ verifyBuilder.addAttribute("from", originating.getFullQualifiedName());
+ verifyBuilder.addAttribute("to", receiving.getFullQualifiedName());
+ verifyBuilder.addAttribute("id", sessionContext.getSessionId());
+ verifyBuilder.addText(dailbackId);
+ connector.write(verifyBuilder.build());
+ return null;
+ } catch (Exception e) {
+ StanzaBuilder builder = new StanzaBuilder("result", NamespaceURIs.JABBER_SERVER_DIALBACK, "db");
+ builder.addAttribute("from", originating.getDomain());
+ builder.addAttribute("to", receiving.getDomain());
+ builder.addAttribute("type", "invalid");
+ return new ResponseStanzaContainerImpl(builder.build());
+ }
} else {
return null;
}
Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbVerifyHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbVerifyHandler.java?rev=1054458&r1=1054457&r2=1054458&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbVerifyHandler.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DbVerifyHandler.java Sun Jan 2 18:52:06 2011
@@ -60,22 +60,30 @@ public class DbVerifyHandler implements
public ResponseStanzaContainer execute(Stanza stanza, ServerRuntimeContext serverRuntimeContext,
boolean isOutboundStanza, SessionContext sessionContext, SessionStateHolder sessionStateHolder) {
- String dailbackId = stanza.getInnerText().getText();
+
+ String type = stanza.getAttributeValue("type");
Entity receiving = EntityImpl.parseUnchecked(stanza.getAttributeValue("from"));
Entity originating = serverRuntimeContext.getServerEnitity();
- String streamId = stanza.getAttributeValue("id");
-
- StanzaBuilder builder = new StanzaBuilder("verify", NamespaceURIs.JABBER_SERVER_DIALBACK);
- builder.addAttribute("from", originating.getDomain());
- builder.addAttribute("to", receiving.getDomain());
- builder.addAttribute("id", streamId);
- if(dailbackIdGenerator.verify(dailbackId, receiving, originating, streamId)) {
- builder.addAttribute("type", "valid");
+ if(type == null) {
+ // ask for verification
+ String dailbackId = stanza.getInnerText().getText();
+ String streamId = stanza.getAttributeValue("id");
+
+ StanzaBuilder builder = new StanzaBuilder("verify", NamespaceURIs.JABBER_SERVER_DIALBACK, "db");
+ builder.addAttribute("from", originating.getDomain());
+ builder.addAttribute("to", receiving.getDomain());
+ builder.addAttribute("id", streamId);
+
+ if(dailbackIdGenerator.verify(dailbackId, receiving, originating, streamId)) {
+ builder.addAttribute("type", "valid");
+ } else {
+ builder.addAttribute("type", "invalid");
+ }
+
+ return new ResponseStanzaContainerImpl(builder.build());
} else {
- builder.addAttribute("type", "invalid");
+ throw new RuntimeException("Unexpected stanza");
}
-
- return new ResponseStanzaContainerImpl(builder.build());
}
}
Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java?rev=1054458&r1=1054457&r2=1054458&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java Sun Jan 2 18:52:06 2011
@@ -29,7 +29,7 @@ import org.apache.vysper.xmpp.writer.Sta
*
* @author The Apache MINA Project (dev@mina.apache.org)
*/
-public interface SessionContext {
+public interface SessionContext extends StanzaWriter {
static final String SESSION_ATTRIBUTE_MESSAGE_STANZA_NO_RECEIVE = "stanza.message.no_receive";
Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java?rev=1054458&r1=1054457&r2=1054458&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java Sun Jan 2 18:52:06 2011
@@ -26,6 +26,7 @@ import org.apache.vysper.xmpp.modules.ex
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
+import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
import org.apache.vysper.xmpp.server.XMPPVersion;
import org.apache.vysper.xmpp.server.response.ServerResponses;
@@ -53,11 +54,16 @@ public class DefaultXMPPServerConnector
private boolean closed = false;
+ private SessionContext dialbackSessionContext;
+ private SessionStateHolder dialbackSessionStateHolder;
+
private Timer pingTimer = new Timer("pingtimer", true);
- public DefaultXMPPServerConnector(Entity otherServer, ServerRuntimeContext serverRuntimeContext) {
+ public DefaultXMPPServerConnector(Entity otherServer, ServerRuntimeContext serverRuntimeContext, SessionContext dialbackSessionContext, SessionStateHolder dialbackSessionStateHolder) {
this.serverRuntimeContext = serverRuntimeContext;
this.otherServer = otherServer;
+ this.dialbackSessionContext = dialbackSessionContext;
+ this.dialbackSessionStateHolder = dialbackSessionStateHolder;
}
public synchronized void start() throws RemoteServerNotFoundException, RemoteServerTimeoutException {
@@ -81,7 +87,7 @@ public class DefaultXMPPServerConnector
ConnectFuture connectFuture = connector.connect(address.getAddress());
if(connectFuture.awaitUninterruptibly(connectTimeout) && connectFuture.isConnected()) {
- // success on the TCP/IP lever, now wait for the XMPP handshake
+ // success on the TCP/IP level, now wait for the XMPP handshake
try {
if(authenticatedLatch.await(xmppHandshakeTimeout, TimeUnit.MILLISECONDS)) {
@@ -132,7 +138,10 @@ public class DefaultXMPPServerConnector
private void startPinging() {
- pingTimer.schedule(new PingTask(), pingPeriod, pingPeriod);
+ // is the XMPP ping module active?
+ if(serverRuntimeContext.getModule(XmppPingModule.class) != null) {
+ pingTimer.schedule(new PingTask(), pingPeriod, pingPeriod);
+ }
}
/* (non-Javadoc)
@@ -200,27 +209,42 @@ public class DefaultXMPPServerConnector
if(msg.getName().equals("stream")) {
sessionContext.setSessionId(msg.getAttributeValue("id"));
} else if(msg.getName().equals("features")) {
- if(startTlsSupported(msg)) {
- LOG.info("XMPP server connector to {} is starting TLS", otherServer);
- Stanza startTlsStanza = new StanzaBuilder("starttls", NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS).build();
-
- sessionContext.write(startTlsStanza);
+ if(dialbackSessionContext != null) {
+ // connector is being used for dialback verificiation, don't do further authentication
+ session.setAttribute("DIALBACK_SESSION_CONTEXT", dialbackSessionContext);
+ session.setAttribute("DIALBACK_SESSION_STATE_HOLDER", dialbackSessionStateHolder);
- } else if(dialbackSupported(msg)) {
- Entity originating = serverRuntimeContext.getServerEnitity();
-
- String dailbackId = new DialbackIdGenerator().generate(otherServer, originating, sessionContext.getSessionId());
-
- Stanza dbResult = new StanzaBuilder("result", NamespaceURIs.JABBER_SERVER_DIALBACK, "db")
- .addAttribute("from", originating.getDomain())
- .addAttribute("to", otherServer.getDomain())
- .addText(dailbackId)
- .build();
-
- sessionContext.write(dbResult);
+ sessionStateHolder.setState(SessionState.AUTHENTICATED);
+ authenticatedLatch.countDown();
} else {
- throw new RuntimeException("Unsupported features");
+ if(startTlsSupported(msg)) {
+ LOG.info("XMPP server connector to {} is starting TLS", otherServer);
+ Stanza startTlsStanza = new StanzaBuilder("starttls", NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS).build();
+
+ sessionContext.write(startTlsStanza);
+
+ } else if(dialbackSupported(msg)) {
+ Entity originating = serverRuntimeContext.getServerEnitity();
+
+ String dailbackId = new DialbackIdGenerator().generate(otherServer, originating, sessionContext.getSessionId());
+
+ Stanza dbResult = new StanzaBuilder("result", NamespaceURIs.JABBER_SERVER_DIALBACK, "db")
+ .addAttribute("from", originating.getDomain())
+ .addAttribute("to", otherServer.getDomain())
+ .addText(dailbackId)
+ .build();
+
+ sessionContext.write(dbResult);
+ } else {
+ // TODO how to handle
+ throw new RuntimeException("Unsupported features");
+ }
}
+ } else if(msg.getName().equals("proceed") && NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS.equals(msg.getNamespaceURI())) {
+ sessionStateHolder.setState(SessionState.ENCRYPTION_STARTED);
+
+ LOG.debug("XMPP server connector to {} switching to TLS", otherServer);
+ sessionContext.switchToTLS(false, true);
} else if(msg.getName().equals("result") && NamespaceURIs.JABBER_SERVER_DIALBACK.equals(msg.getNamespaceURI())) {
// TODO check and handle dailback result
sessionStateHolder.setState(SessionState.AUTHENTICATED);
@@ -230,11 +254,27 @@ public class DefaultXMPPServerConnector
// connection established, start pinging
startPinging();
- } else if(msg.getName().equals("proceed") && NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS.equals(msg.getNamespaceURI())) {
- sessionStateHolder.setState(SessionState.ENCRYPTION_STARTED);
+ } else if(msg.getName().equals("verify") && NamespaceURIs.JABBER_SERVER_DIALBACK.equals(msg.getNamespaceURI())) {
+ Entity originating = serverRuntimeContext.getServerEnitity();
+ String type = msg.getAttributeValue("type");
- LOG.debug("XMPP server connector to {} switching to TLS", otherServer);
- sessionContext.switchToTLS(false, true);
+ String resultType = "invalid";
+ if("valid".equals(type)) {
+ dialbackSessionStateHolder.setState(SessionState.AUTHENTICATED);
+ dialbackSessionContext.setInitiatingEntity(otherServer);
+ resultType = "valid";
+ }
+
+ // <db:result xmlns:db="jabber:server:dialback" to="xmpp.protocol7.com" from="jabber.org" type="valid"></db:result>
+ StanzaBuilder builder = new StanzaBuilder("result", NamespaceURIs.JABBER_SERVER_DIALBACK, "db");
+ builder.addAttribute("from", originating.getDomain());
+ builder.addAttribute("to", otherServer.getDomain());
+ builder.addAttribute("type", resultType);
+
+ dialbackSessionContext.write(builder.build());
+
+ // close this session as we are now done checking dialback
+ close();
} else {
// TODO other stanzas coming here?
}
@@ -270,9 +310,7 @@ public class DefaultXMPPServerConnector
private class PingTask extends TimerTask {
public void run() {
XmppPingModule pingModule = serverRuntimeContext.getModule(XmppPingModule.class);
- if(pingModule != null) {
- pingModule.ping(DefaultXMPPServerConnector.this, serverRuntimeContext.getServerEnitity(), otherServer, pingTimeout, DefaultXMPPServerConnector.this);
- }
+ pingModule.ping(DefaultXMPPServerConnector.this, serverRuntimeContext.getServerEnitity(), otherServer, pingTimeout, DefaultXMPPServerConnector.this);
}
}
Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnectorRegistry.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnectorRegistry.java?rev=1054458&r1=1054457&r2=1054458&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnectorRegistry.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnectorRegistry.java Sun Jan 2 18:52:06 2011
@@ -6,7 +6,9 @@ import org.apache.vysper.compliance.Spec
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.delivery.failure.RemoteServerNotFoundException;
import org.apache.vysper.xmpp.delivery.failure.RemoteServerTimeoutException;
+import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
+import org.apache.vysper.xmpp.server.SessionContext;
public class DefaultXMPPServerConnectorRegistry implements XMPPServerConnectorRegistry {
@@ -22,6 +24,14 @@ public class DefaultXMPPServerConnectorR
*/
@SpecCompliant(spec = "draft-ietf-xmpp-3920bis-22", section = "10.4", status = SpecCompliant.ComplianceStatus.IN_PROGRESS, coverage = SpecCompliant.ComplianceCoverage.COMPLETE)
public synchronized XMPPServerConnector connect(Entity server) throws RemoteServerNotFoundException, RemoteServerTimeoutException {
+ return connect(server, null, null);
+ }
+
+ public synchronized XMPPServerConnector connectForDialback(Entity server, SessionContext orginalSessionContext, SessionStateHolder originalSessionStateHolder) throws RemoteServerNotFoundException, RemoteServerTimeoutException {
+ return connect(server, orginalSessionContext, originalSessionStateHolder);
+ }
+
+ private XMPPServerConnector connect(Entity server, SessionContext dialbackSessionContext, SessionStateHolder dialbackSessionStateHolder) throws RemoteServerNotFoundException, RemoteServerTimeoutException {
DefaultXMPPServerConnector connector = connectors.get(server);
if(connector != null && connector.isClosed()) {
@@ -30,12 +40,16 @@ public class DefaultXMPPServerConnectorR
}
if(connector == null) {
- connector = new DefaultXMPPServerConnector(server, serverRuntimeContext);
+ connector = new DefaultXMPPServerConnector(server, serverRuntimeContext, dialbackSessionContext, dialbackSessionStateHolder);
connector.start();
- connectors.put(server, connector);
+
+ // only register if we're not starting a connector for dialback
+ if(dialbackSessionContext == null) {
+ connectors.put(server, connector);
+ }
}
- return connector;
+ return connector;
}
/* (non-Javadoc)
Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java?rev=1054458&r1=1054457&r2=1054458&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/XMPPServerConnectorRegistry.java Sun Jan 2 18:52:06 2011
@@ -3,12 +3,18 @@ package org.apache.vysper.xmpp.server.s2
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.delivery.failure.RemoteServerNotFoundException;
import org.apache.vysper.xmpp.delivery.failure.RemoteServerTimeoutException;
+import org.apache.vysper.xmpp.protocol.SessionStateHolder;
+import org.apache.vysper.xmpp.server.SessionContext;
public interface XMPPServerConnectorRegistry {
XMPPServerConnector connect(Entity server) throws RemoteServerNotFoundException,
RemoteServerTimeoutException;
+ XMPPServerConnector connectForDialback(Entity server, SessionContext sessionContext, SessionStateHolder sessionStateHolder) throws RemoteServerNotFoundException,
+ RemoteServerTimeoutException;
+
+
void close();
}
\ No newline at end of file
Copied: mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGeneratorTest.java (from r1054300, mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/IdTest.java)
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGeneratorTest.java?p2=mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGeneratorTest.java&p1=mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/IdTest.java&r1=1054300&r2=1054458&rev=1054458&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/IdTest.java (original)
+++ mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGeneratorTest.java Sun Jan 2 18:52:06 2011
@@ -1,4 +1,4 @@
-package org.apache.vysper.xmpp.server;
+package org.apache.vysper.xmpp.modules.extension.xep0220_server_dailback;
import junit.framework.Assert;
import junit.framework.TestCase;
@@ -7,7 +7,7 @@ import org.apache.vysper.xmpp.addressing
import org.apache.vysper.xmpp.modules.extension.xep0220_server_dailback.DialbackIdGenerator;
-public class IdTest extends TestCase {
+public class DialbackIdGeneratorTest extends TestCase {
private Entity receiving = EntityImpl.parseUnchecked("xmpp.example.com");
private Entity originating = EntityImpl.parseUnchecked("example.org");
Modified: mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java?rev=1054458&r1=1054457&r2=1054458&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java (original)
+++ mina/vysper/branches/s2s/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java Sun Jan 2 18:52:06 2011
@@ -117,6 +117,7 @@ public class Server2Server {
Message msg = new Message(localUser.getFullQualifiedName());
msg.setBody("Hello world");
+// localClient.sendPacket(msg);
remoteClient.sendPacket(msg);