home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / net / ftp / iftpclient.java < prev   
Text File  |  1995-08-11  |  3KB  |  92 lines

  1. /*
  2.  * @(#)IftpClient.java    1.10 95/05/21 Jonathan Payne
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package net.ftp;
  21.  
  22. import java.io.*;
  23. import net.*;
  24.  
  25. /**
  26.  * Create an FTP client that uses a proxy server to cross a network
  27.  * firewall boundary.
  28.  *
  29.  * @version     1.10, 21 May 1995
  30.  * @author    Jonathan Payne
  31.  * @see FtpClient
  32.  */
  33. public class IftpClient extends FtpClient {
  34.     /** The proxyserver to use */
  35.     String  proxyServer = "sun-barr";
  36.     String  actualHost = null;
  37.     
  38.     /**
  39.      * Open an FTP connection to host <i>host</i>.
  40.      */
  41.     public void openServer(String host) {
  42.     if (!serverIsOpen())
  43.         super.openServer(proxyServer,
  44.                  InetAddress.getPortByName("ftp-passthru"));
  45.     actualHost = host;
  46.     }
  47.  
  48.     boolean checkExpectedReply() {
  49.     return readReply() != FTP_ERROR;
  50.     }
  51.  
  52.     /** 
  53.      * login user to a host with username <i>user</i> and password 
  54.      * <i>password</i> 
  55.      */
  56.     public void login(String user, String password) {
  57.     if (!serverIsOpen()) {
  58.         throw new FtpLoginException("not connected to host");
  59.     }
  60.     user = user + "@" + actualHost;
  61.     this.user = user;
  62.     this.password = password;
  63.     if (issueCommand("USER " + user) == FTP_ERROR ||
  64.         lastReplyCode == 220 && !checkExpectedReply()) {
  65.         throw new FtpLoginException("user");
  66.     }
  67.     if (password != null && issueCommand("PASS " + password) == FTP_ERROR) {
  68.         throw new FtpLoginException("password");
  69.     }
  70.     }
  71.  
  72.     /**
  73.      * change the proxyserver from the default.
  74.      */
  75.     public void setProxyServer(String proxy) {
  76.     if (serverIsOpen())
  77.         closeServer();
  78.     proxyServer = proxy;
  79.     }
  80.  
  81.     /**
  82.      * Create a new IftpClient handle.
  83.      */
  84.     public IftpClient(String host) {
  85.     super();
  86.     openServer(host);
  87.     }
  88.  
  89.     /** Create an uninitialized client handle */
  90.     public IftpClient() {}
  91. }
  92.