src/share/classes/sun/net/ftp/impl/FtpClient.java

Print this page




 410         int c;
 411         int continuingCode = -1;
 412         int code;
 413         String response;
 414 
 415         serverResponse.setSize(0);
 416         while (true) {
 417             while ((c = in.read()) != -1) {
 418                 if (c == '\r') {
 419                     if ((c = in.read()) != '\n') {
 420                         replyBuf.append('\r');
 421                     }
 422                 }
 423                 replyBuf.append((char) c);
 424                 if (c == '\n') {
 425                     break;
 426                 }
 427             }
 428             response = replyBuf.toString();
 429             replyBuf.setLength(0);
 430             if (logger.isLoggable(PlatformLogger.FINEST)) {
 431                 logger.finest("Server [" + serverAddr + "] --> " + response);
 432             }
 433 
 434             if (response.length() == 0) {
 435                 code = -1;
 436             } else {
 437                 try {
 438                     code = Integer.parseInt(response.substring(0, 3));
 439                 } catch (NumberFormatException e) {
 440                     code = -1;
 441                 } catch (StringIndexOutOfBoundsException e) {
 442                     /* this line doesn't contain a response code, so
 443                     we just completely ignore it */
 444                     continue;
 445                 }
 446             }
 447             serverResponse.addElement(response);
 448             if (continuingCode != -1) {
 449                 /* we've seen a ###- sequence */
 450                 if (code != continuingCode ||


 452                     continue;
 453                 } else {
 454                     /* seen the end of code sequence */
 455                     continuingCode = -1;
 456                     break;
 457                 }
 458             } else if (response.length() >= 4 && response.charAt(3) == '-') {
 459                 continuingCode = code;
 460                 continue;
 461             } else {
 462                 break;
 463             }
 464         }
 465 
 466         return code;
 467     }
 468 
 469     /** Sends command <i>cmd</i> to the server. */
 470     private void sendServer(String cmd) {
 471         out.print(cmd);
 472         if (logger.isLoggable(PlatformLogger.FINEST)) {
 473             logger.finest("Server [" + serverAddr + "] <-- " + cmd);
 474         }
 475     }
 476 
 477     /** converts the server response into a string. */
 478     private String getResponseString() {
 479         return serverResponse.elementAt(0);
 480     }
 481 
 482     /** Returns all server response strings. */
 483     private Vector<String> getResponseStrings() {
 484         return serverResponse;
 485     }
 486 
 487     /**
 488      * Read the reply from the FTP server.
 489      *
 490      * @return <code>true</code> if the command was successful
 491      * @throws IOException if an error occured
 492      */




 410         int c;
 411         int continuingCode = -1;
 412         int code;
 413         String response;
 414 
 415         serverResponse.setSize(0);
 416         while (true) {
 417             while ((c = in.read()) != -1) {
 418                 if (c == '\r') {
 419                     if ((c = in.read()) != '\n') {
 420                         replyBuf.append('\r');
 421                     }
 422                 }
 423                 replyBuf.append((char) c);
 424                 if (c == '\n') {
 425                     break;
 426                 }
 427             }
 428             response = replyBuf.toString();
 429             replyBuf.setLength(0);
 430             if (logger.isLoggable(PlatformLogger.Level.FINEST)) {
 431                 logger.finest("Server [" + serverAddr + "] --> " + response);
 432             }
 433 
 434             if (response.length() == 0) {
 435                 code = -1;
 436             } else {
 437                 try {
 438                     code = Integer.parseInt(response.substring(0, 3));
 439                 } catch (NumberFormatException e) {
 440                     code = -1;
 441                 } catch (StringIndexOutOfBoundsException e) {
 442                     /* this line doesn't contain a response code, so
 443                     we just completely ignore it */
 444                     continue;
 445                 }
 446             }
 447             serverResponse.addElement(response);
 448             if (continuingCode != -1) {
 449                 /* we've seen a ###- sequence */
 450                 if (code != continuingCode ||


 452                     continue;
 453                 } else {
 454                     /* seen the end of code sequence */
 455                     continuingCode = -1;
 456                     break;
 457                 }
 458             } else if (response.length() >= 4 && response.charAt(3) == '-') {
 459                 continuingCode = code;
 460                 continue;
 461             } else {
 462                 break;
 463             }
 464         }
 465 
 466         return code;
 467     }
 468 
 469     /** Sends command <i>cmd</i> to the server. */
 470     private void sendServer(String cmd) {
 471         out.print(cmd);
 472         if (logger.isLoggable(PlatformLogger.Level.FINEST)) {
 473             logger.finest("Server [" + serverAddr + "] <-- " + cmd);
 474         }
 475     }
 476 
 477     /** converts the server response into a string. */
 478     private String getResponseString() {
 479         return serverResponse.elementAt(0);
 480     }
 481 
 482     /** Returns all server response strings. */
 483     private Vector<String> getResponseStrings() {
 484         return serverResponse;
 485     }
 486 
 487     /**
 488      * Read the reply from the FTP server.
 489      *
 490      * @return <code>true</code> if the command was successful
 491      * @throws IOException if an error occured
 492      */