=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ftp/ftp.c,v retrieving revision 1.26 retrieving revision 1.27 diff -c -r1.26 -r1.27 *** src/usr.bin/ftp/ftp.c 1998/05/13 08:59:07 1.26 --- src/usr.bin/ftp/ftp.c 1998/05/13 10:42:35 1.27 *************** *** 1,4 **** ! /* $OpenBSD: ftp.c,v 1.26 1998/05/13 08:59:07 deraadt Exp $ */ /* $NetBSD: ftp.c,v 1.27 1997/08/18 10:20:23 lukem Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: ftp.c,v 1.27 1998/05/13 10:42:35 deraadt Exp $ */ /* $NetBSD: ftp.c,v 1.27 1997/08/18 10:20:23 lukem Exp $ */ /* *************** *** 38,44 **** #if 0 static char sccsid[] = "@(#)ftp.c 8.6 (Berkeley) 10/27/94"; #else ! static char rcsid[] = "$OpenBSD: ftp.c,v 1.26 1998/05/13 08:59:07 deraadt Exp $"; #endif #endif /* not lint */ --- 38,44 ---- #if 0 static char sccsid[] = "@(#)ftp.c 8.6 (Berkeley) 10/27/94"; #else ! static char rcsid[] = "$OpenBSD: ftp.c,v 1.27 1998/05/13 10:42:35 deraadt Exp $"; #endif #endif /* not lint */ *************** *** 120,125 **** --- 120,127 ---- hisctladdr.sin_port = port; while (connect(s, (struct sockaddr *)&hisctladdr, sizeof(hisctladdr)) < 0) { + if (errno == EINTR) + continue; if (hp && hp->h_addr_list[1]) { int oerrno = errno; char *ia; *************** *** 130,136 **** hp->h_addr_list++; memcpy(&hisctladdr.sin_addr, hp->h_addr_list[0], (size_t)hp->h_length); ! fprintf(ttyout, "Trying %s...\n", inet_ntoa(hisctladdr.sin_addr)); (void)close(s); s = socket(hisctladdr.sin_family, SOCK_STREAM, 0); if (s < 0) { --- 132,139 ---- hp->h_addr_list++; memcpy(&hisctladdr.sin_addr, hp->h_addr_list[0], (size_t)hp->h_length); ! fprintf(ttyout, "Trying %s...\n", ! inet_ntoa(hisctladdr.sin_addr)); (void)close(s); s = socket(hisctladdr.sin_family, SOCK_STREAM, 0); if (s < 0) { *************** *** 1146,1153 **** p[0] = p0 & 0xff; p[1] = p1 & 0xff; ! if (connect(data, (struct sockaddr *)&data_addr, sizeof(data_addr)) < 0) { warn("connect"); goto bad; } --- 1149,1158 ---- p[0] = p0 & 0xff; p[1] = p1 & 0xff; ! while (connect(data, (struct sockaddr *)&data_addr, sizeof(data_addr)) < 0) { + if (errno == EINTR) + continue; warn("connect"); goto bad; }