Browse Source

telnet and rexec have been broken. PR 49173. Based on patch submitted by James Wartell

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@937187 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 15 years ago
parent
commit
8016bd8d28
3 changed files with 12 additions and 4 deletions
  1. +4
    -0
      WHATSNEW
  2. +4
    -2
      src/main/org/apache/tools/ant/taskdefs/optional/net/RExecTask.java
  3. +4
    -2
      src/main/org/apache/tools/ant/taskdefs/optional/net/TelnetTask.java

+ 4
- 0
WHATSNEW View File

@@ -90,6 +90,10 @@ Fixed bugs:
to a link inside the current directory without a leading ".".
Bugzilla Report 49137

* <telnet> and <rexec> failed to find the expected strings when
waiting for responses and thus always failed.
Bugzilla Report 49173

Other changes:
--------------



+ 4
- 2
src/main/org/apache/tools/ant/taskdefs/optional/net/RExecTask.java View File

@@ -205,14 +205,15 @@ public class RExecTask extends Task {
StringBuffer sb = new StringBuffer();
int windowStart = -s.length();
if (timeout == null || timeout.intValue() == 0) {
while (windowStart++ < 0
while (windowStart < 0
|| !sb.substring(windowStart).equals(s)) {
sb.append((char) is.read());
windowStart++;
}
} else {
Calendar endTime = Calendar.getInstance();
endTime.add(Calendar.SECOND, timeout.intValue());
while (windowStart++ < 0
while (windowStart < 0
|| !sb.substring(windowStart).equals(s)) {
while (Calendar.getInstance().before(endTime)
&& is.available() == 0) {
@@ -224,6 +225,7 @@ public class RExecTask extends Task {
getLocation());
}
sb.append((char) is.read());
windowStart++;
}
}
log(sb.toString(), Project.MSG_INFO);


+ 4
- 2
src/main/org/apache/tools/ant/taskdefs/optional/net/TelnetTask.java View File

@@ -342,14 +342,15 @@ public class TelnetTask extends Task {
StringBuffer sb = new StringBuffer();
int windowStart = -s.length();
if (timeout == null || timeout.intValue() == 0) {
while (windowStart++ < 0
while (windowStart < 0
|| !sb.substring(windowStart).equals(s)) {
sb.append((char) is.read());
windowStart++;
}
} else {
Calendar endTime = Calendar.getInstance();
endTime.add(Calendar.SECOND, timeout.intValue());
while (windowStart++ < 0
while (windowStart < 0
|| !sb.substring(windowStart).equals(s)) {
while (Calendar.getInstance().before(endTime)
&& is.available() == 0) {
@@ -363,6 +364,7 @@ public class TelnetTask extends Task {
getLocation());
}
sb.append((char) is.read());
windowStart++;
}
}
log(sb.toString(), Project.MSG_INFO);


Loading…
Cancel
Save