Re: ssh working as designed?

From: Scott Schwartz (schwartz+@usenet)
Date: 04/26/02


From: Scott Schwartz <"schwartz+@usenet "@bio.cse.psu.edu>
Date: 26 Apr 2002 01:50:19 -0400

Neil W Rickert <rickert+nn@cs.niu.edu> writes:
> >what causes this behavior?
>
> A flaky network.

On a slightly different topic, openssh 3.1.1 has lots of code like
this:

      res = (f) (fd, s + pos, n - pos);
      switch (res) {
      case -1:
              if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK)
                      continue;

but isn't it true that there are other errno values, like
EHOSTUNREACH, that also mean that the operation should be retried?
Ssh certainly shouldn't drop a connection just because a router flaps.

For that matter, why are all these "if (....)" expressions duplicated
throughout the program? Maybe there should be one function,
try_again(errno), that puts the logic in one place.