This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: RE: Determining network ERROR codes
- To: "Trenton D. Adams" <tadams at extremeeng dot com>
- Subject: RE: [ECOS] RE: Determining network ERROR codes
- From: Gary Thomas <gthomas at redhat dot com>
- Date: Thu, 19 Jul 2001 16:17:28 -0600 (MDT)
- Cc: eCos mailing list <ecos-discuss at sources dot redhat dot com>
- Organization: Red Hat, Inc.
On 19-Jul-2001 Trenton D. Adams wrote:
> >
> > Ok, how do I know what error corresponds to what? I got an error of
> 331
> > on a connect () call. Aren't these supposed to be standard errors?
> > They don't seem to return the same errors as they do on Windows.
> Maybe
> > windows redefines them!
> >
> > Anyhow, where do I look for this information?
> >
>
> I have the following code. Connect keeps returning 331 EADDRNOTAVAIL.
> I have no idea why that might happen. This program would work with a
> few modifications on linux and windows as far as I recall. Inet_addr ()
> does return an IP address in network byte order so I can't see that
> being a problem. Any ideas?
>
> int s;
> int one = 1;
> struct sockaddr_in addr;
>
> diag_printf("Start socket test\n");
>
> s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
> diag_printf("socket() = %d\n", s);
>
> addr.sin_addr.s_addr = inet_addr ("172.16.1.9");
> addr.sin_family = AF_INET;
> addr.sin_port = htons (1024);
> addr.sin_len = sizeof (addr);
> if (connect (s, &addr, sizeof (addr)) != 0)
> {
> diag_printf ("Error connecting to socket! - %d\n",
> errno);
> cyg_test_exit();
> }
>
> send (s, "Hello From eCos", strlen ("Hello From eCos"), 0);
>
> cyg_test_exit();
Have you run the eCos standard networking tests?
I'd try leaving off the IPPROTO_TCP on the socket() call - use 0.