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);