home *** CD-ROM | disk | FTP | other *** search
- package sun.net.www.protocol.ftp;
-
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.PipedInputStream;
- import java.io.PipedOutputStream;
- import java.net.URL;
- import java.net.UnknownHostException;
- import sun.net.ProgressData;
- import sun.net.ProgressEntry;
- import sun.net.ftp.FtpClient;
- import sun.net.www.MessageHeader;
- import sun.net.www.MeteredStream;
- import sun.net.www.URLConnection;
-
- public class FtpURLConnection extends URLConnection {
- // $FF: renamed from: is java.io.InputStream
- InputStream field_0;
- FtpClient ftp;
-
- public FtpURLConnection(URL var1) {
- super(var1);
- }
-
- public synchronized void connect() throws IOException {
- if (!super.connected) {
- try {
- this.ftp = new FtpClient(super.url.getHost());
- } catch (UnknownHostException var2) {
- throw var2;
- }
-
- this.ftp.login("anonymous", System.getProperty("ftp.protocol.user", "Java" + System.getProperty("java.version") + "@"));
- }
- }
-
- public InputStream getInputStream() throws IOException {
- if (!super.connected) {
- this.connect();
- }
-
- if (this.field_0 != null) {
- return this.field_0;
- } else {
- MessageHeader var1 = new MessageHeader();
-
- try {
- this.ftp.binary();
- this.field_0 = this.ftp.get(super.url.getFile());
-
- try {
- String var9 = this.ftp.getResponseString();
- int var3;
- if ((var3 = var9.indexOf(" bytes)")) != -1) {
- int var4 = var3;
-
- char var5;
- do {
- --var4;
- } while(var4 >= 0 && (var5 = var9.charAt(var4)) >= '0' && var5 <= '9');
-
- var4 = Integer.parseInt(var9.substring(var4 + 1, var3));
- var1.add("content-length", String.valueOf(var4));
- if (var4 > 0) {
- ProgressEntry var6 = new ProgressEntry(super.url.getFile(), (String)null);
- var6.update(0, var4);
- ProgressData.pdata.register(var6);
- this.field_0 = new MeteredStream(this.field_0, var6);
- }
- }
- } catch (Exception var7) {
- ((Throwable)var7).printStackTrace();
- }
-
- String var10 = java.net.URLConnection.guessContentTypeFromName(super.url.getFile());
- if (var10 == null && this.field_0.markSupported()) {
- var10 = java.net.URLConnection.guessContentTypeFromStream(this.field_0);
- }
-
- if (var10 != null) {
- var1.add("content-type", var10);
- }
- } catch (FileNotFoundException var8) {
- this.ftp.cd(super.url.getFile());
- this.ftp.ascii();
- PipedOutputStream var2 = new PipedOutputStream();
- this.field_0 = new PipedInputStream(var2);
- (new FtpDirectoryThread(this, this.ftp, super.url, this.ftp.list(), var2)).start();
- var1.add("content-type", "text/html");
- }
-
- ((URLConnection)this).setProperties(var1);
- return this.field_0;
- }
- }
-
- String guessContentTypeFromFilename(String var1) {
- return java.net.URLConnection.guessContentTypeFromName(var1);
- }
- }
-