You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ftpserver-commits@incubator.apache.org by ng...@apache.org on 2007/02/25 21:19:13 UTC

svn commit: r511618 - /incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpServer.java

Author: ngn
Date: Sun Feb 25 13:19:13 2007
New Revision: 511618

URL: http://svn.apache.org/viewvc?view=rev&rev=511618
Log:
Fixed isStopped() so that it reports the correct status (FTPSERVER-68)
Fixed suspend() and resume() so that they suspend/resume the listeners (FTPSERVER-72)

Modified:
    incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpServer.java

Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpServer.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpServer.java?view=diff&rev=511618&r1=511617&r2=511618
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpServer.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpServer.java Sun Feb 25 13:19:13 2007
@@ -34,14 +34,15 @@
 
     private static final Logger LOG = LoggerFactory.getLogger(FtpServer.class);
     
-    private Thread runner;
-
+    
     private FtpServerContext serverContext = new DefaultFtpServerContext();
 
     private boolean suspended;
 
+    private boolean started = false;
+
     /**
-     * Default constructor.
+     * Creates a server with the default configuration
      * @throws Exception 
      */
     public FtpServer() throws Exception {
@@ -63,6 +64,8 @@
         for (int i = 0; i<listeners.length; i++) {
             listeners[i].start(serverContext);
         }
+
+        started = true;
         
         System.out.println("Server ready :: Apache FTP Server");
         LOG.info("------- Apache FTP Server started ------");
@@ -87,19 +90,26 @@
             serverContext = null;
         }
 
+        started = false;
     }
 
     /**
      * Get the server status.
      */
     public boolean isStopped() {
-        return runner == null;
+        return !started;
     }
 
     /**
      * Suspend further requests
      */
     public void suspend() {
+        // stop all listeners
+        Listener[] listeners = serverContext.getListeners(); 
+        for (int i = 0; i<listeners.length; i++) {
+            listeners[i].suspend();
+        }
+        
         suspended = true;
     }
 
@@ -107,6 +117,11 @@
      * Resume the server handler
      */
     public void resume() {
+        Listener[] listeners = serverContext.getListeners(); 
+        for (int i = 0; i<listeners.length; i++) {
+            listeners[i].resume();
+        }
+        
         suspended = false;
     }