jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java
changeset 18212 22f8c33b0690
parent 16730 5f67810e08fb
child 18275 9e7a5558965d
equal deleted inserted replaced
18211:74aeb4741e3d 18212:22f8c33b0690
    74     private Vector<String> serverResponse = new Vector<String>(1);
    74     private Vector<String> serverResponse = new Vector<String>(1);
    75     /** The last reply code from the ftp daemon. */
    75     /** The last reply code from the ftp daemon. */
    76     private FtpReplyCode lastReplyCode = null;
    76     private FtpReplyCode lastReplyCode = null;
    77     /** Welcome message from the server, if any. */
    77     /** Welcome message from the server, if any. */
    78     private String welcomeMsg;
    78     private String welcomeMsg;
    79     private boolean passiveMode = true;
    79     /**
       
    80      * Only passive mode used in JDK. See Bug 8010784.
       
    81      */
       
    82     private final boolean passiveMode = true;
    80     private TransferType type = TransferType.BINARY;
    83     private TransferType type = TransferType.BINARY;
    81     private long restartOffset = 0;
    84     private long restartOffset = 0;
    82     private long lastTransSize = -1; // -1 means 'unknown size'
    85     private long lastTransSize = -1; // -1 means 'unknown size'
    83     private String lastFileName;
    86     private String lastFileName;
    84     /**
    87     /**
   643                 s = new Socket(Proxy.NO_PROXY);
   646                 s = new Socket(Proxy.NO_PROXY);
   644             }
   647             }
   645         } else {
   648         } else {
   646             s = new Socket();
   649             s = new Socket();
   647         }
   650         }
       
   651 
       
   652         InetAddress serverAddress = AccessController.doPrivileged(
       
   653                 new PrivilegedAction<InetAddress>() {
       
   654                     @Override
       
   655                     public InetAddress run() {
       
   656                         return server.getLocalAddress();
       
   657                     }
       
   658                 });
       
   659 
   648         // Bind the socket to the same address as the control channel. This
   660         // Bind the socket to the same address as the control channel. This
   649         // is needed in case of multi-homed systems.
   661         // is needed in case of multi-homed systems.
   650         s.bind(new InetSocketAddress(server.getLocalAddress(), 0));
   662         s.bind(new InetSocketAddress(serverAddress, 0));
   651         if (connectTimeout >= 0) {
   663         if (connectTimeout >= 0) {
   652             s.connect(dest, connectTimeout);
   664             s.connect(dest, connectTimeout);
   653         } else {
   665         } else {
   654             if (defaultConnectTimeout > 0) {
   666             if (defaultConnectTimeout > 0) {
   655                 s.connect(dest, defaultConnectTimeout);
   667                 s.connect(dest, defaultConnectTimeout);
   814      *
   826      *
   815      * @return This FtpClient
   827      * @return This FtpClient
   816      * @see #setActiveMode()
   828      * @see #setActiveMode()
   817      */
   829      */
   818     public sun.net.ftp.FtpClient enablePassiveMode(boolean passive) {
   830     public sun.net.ftp.FtpClient enablePassiveMode(boolean passive) {
   819         passiveMode = passive;
   831 
       
   832         // Only passive mode used in JDK. See Bug 8010784.
       
   833         // passiveMode = passive;
   820         return this;
   834         return this;
   821     }
   835     }
   822 
   836 
   823     /**
   837     /**
   824      * Gets the current transfer mode.
   838      * Gets the current transfer mode.