Chris Browne <[EMAIL PROTECTED]> writes:
> [EMAIL PROTECTED] (Tom Lane) writes:
>> Chris Browne <[EMAIL PROTECTED]> writes:
>>> (gdb) print addr->ai_addr->sa_data
>>> $18 = "\000\001\177\000\000\001\000\000\000\000\000\000\000"
>> 
>> Hmm, that looks a bit odd --- what's the full declaration of structs
>> sockaddr and sockaddr_in on that machine?

> struct sockaddr {
>         uchar_t         sa_len;         /* total length */
>         sa_family_t     sa_family;      /* address family */
>         char            sa_data[14];    /* actually longer; address value */
> };

> struct sockaddr_in {
>         uchar_t        sin_len;
>         sa_family_t    sin_family;
>         in_port_t      sin_port;
>         struct in_addr sin_addr;
>         uchar_t        sin_zero[8];
> };

So you've got sin_port = 1, which explains the permission-denied
message.  Next question is why getaddrinfo is setting it that way
rather than to zero.  Is it possible that getaddrinfo is failing
to initialize the field at all, and we're just getting bit by
random pre-existing memory contents?

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to