Mercurial > hg > openjdk > bsd-port > jdk
changeset 8678:7cc2d987a269
8170222: Better transfers of files
Reviewed-by: dfuchs, chegar, vtewari
author | rpatil |
---|---|
date | Fri, 21 Apr 2017 06:28:12 +0100 |
parents | f2d639848a0e |
children | 815d05b1ba7d |
files | src/share/classes/sun/net/ftp/impl/FtpClient.java |
diffstat | 1 files changed, 15 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/sun/net/ftp/impl/FtpClient.java Fri Apr 21 06:21:45 2017 +0100 +++ b/src/share/classes/sun/net/ftp/impl/FtpClient.java Fri Apr 21 06:28:12 2017 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -518,7 +518,8 @@ * @return <code>true</code> if the command was successful * @throws IOException */ - private boolean issueCommand(String cmd) throws IOException { + private boolean issueCommand(String cmd) throws IOException, + sun.net.ftp.FtpProtocolException { if (!isConnected()) { throw new IllegalStateException("Not connected"); } @@ -529,6 +530,12 @@ // ignore... } } + if (cmd.indexOf('\n') != -1) { + sun.net.ftp.FtpProtocolException ex + = new sun.net.ftp.FtpProtocolException("Illegal FTP command"); + ex.initCause(new IllegalArgumentException("Illegal carriage return")); + throw ex; + } sendServer(cmd + "\r\n"); return readReply(); } @@ -1121,7 +1128,10 @@ */ public void close() throws IOException { if (isConnected()) { - issueCommand("QUIT"); + try { + issueCommand("QUIT"); + } catch (FtpProtocolException e) { + } loggedIn = false; } disconnect(); @@ -1899,7 +1909,8 @@ return null; } - private boolean sendSecurityData(byte[] buf) throws IOException { + private boolean sendSecurityData(byte[] buf) throws IOException, + sun.net.ftp.FtpProtocolException { BASE64Encoder encoder = new BASE64Encoder(); String s = encoder.encode(buf); return issueCommand("ADAT " + s);