diff -N -c -r -X exclude_files squid-1.0.beta5/src/ftpget.c squid-1.0.beta5.henrik/src/ftpget.c *** squid-1.0.beta5/src/ftpget.c Fri May 3 17:17:50 1996 --- squid-1.0.beta5.henrik/src/ftpget.c Fri May 3 17:21:20 1996 *************** *** 1158,1165 **** static int init = 0; if(r->dfd >= 0) { ! Debug(26,3,("Already connected, fd=%d\n",r->dfd)); ! return PORT_OK; } if ((sock = socket(PF_INET, SOCK_STREAM, 0)) < 0) { --- 1158,1177 ---- static int init = 0; if(r->dfd >= 0) { ! fd_set R; ! struct timeval tv; ! FD_ZERO(&R); ! FD_SET(r->dfd,&R); ! tv.tv_sec = 0; ! tv.tv_usec = 0; ! if(select(r->dfd+1,&R,NULL,NULL,&tv)==0) { ! Debug(26,3,("Already connected, fd=%d\n",r->dfd)); ! return PORT_OK; ! } else { ! Debug(26,2,("Data connection closed by server (%s)\n",xstrerror())); ! close(r->dfd); ! r->dfd=-1; ! } } if ((sock = socket(PF_INET, SOCK_STREAM, 0)) < 0) { *************** *** 1238,1245 **** static int pasv_supported = 1; if(r->dfd >= 0) { ! Debug(26,3,("Already connected, fd=%d\n",r->dfd)); ! return PORT_OK; } /* if PASV previously failed, don't even try it again. Just return --- 1250,1269 ---- static int pasv_supported = 1; if(r->dfd >= 0) { ! fd_set R; ! struct timeval tv; ! FD_ZERO(&R); ! FD_SET(r->dfd,&R); ! tv.tv_sec = 0; ! tv.tv_usec = 0; ! if(select(r->dfd+1,&R,NULL,NULL,&tv)==0) { ! Debug(26,3,("Already connected, fd=%d\n",r->dfd)); ! return PORT_OK; ! } else { ! Debug(26,2,("Data connection closed by server (%s)\n",xstrerror())); ! close(r->dfd); ! r->dfd=-1; ! } } /* if PASV previously failed, don't even try it again. Just return