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 */
|