Date: Sat, 12 Apr 2003 20:49:12 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: BelletJr@aol.com Cc: current@freebsd.org Subject: Re: connect(2) behavior with unreacheable hosts Message-ID: <20030412.204912.76964336.imp@bsdimp.com> In-Reply-To: <109.225ca595.2bc723f2@aol.com> References: <109.225ca595.2bc723f2@aol.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <109.225ca595.2bc723f2@aol.com>
BelletJr@aol.com writes:
: Why does not connect(2) return any error when trying to connect to a host
: unreachable because of an infinite loop in the routes? No time-out occurs and
: the value 0 is returned by connect(2).
Hmmmmm, you are correct. I was sure that you were nuts, but on
-current the following program returns no error at all... Telnet
shows the same behavior. This is clearly wrong.
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <err.h>
int main(void)
{
int fd;
struct in_addr addr;
struct sockaddr_in sa;
int flags;
fd = socket(PF_INET, SOCK_STREAM, 0);
inet_aton("1.2.3.4", &addr);
sa.sin_len = sizeof(sa);
sa.sin_family = AF_INET;
sa.sin_port = htons(1234);
memcpy(&sa.sin_addr, &addr, sizeof(addr));
if (connect(fd, (struct sockaddr *) &sa, sizeof(sa)))
err(1, "connect");
exit(0);
}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030412.204912.76964336.imp>
