Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Nov 2011 00:13:49 +0200
From:      Gleb Kurtsou <gleb.kurtsou@gmail.com>
To:        GR <freebsd@gomor.org>
Cc:        freebsd-current@freebsd.org, freebsd-stable@freebsd.org
Subject:   Re: SIOCGIFADDR broken on 9.0-RC1?
Message-ID:  <20111115221349.GA8701@reks>
In-Reply-To: <ba681b9d-4096-4966-9fff-590716a78ed0@ubuntu64>
References:  <ee0855d0-f04c-4bdb-8578-bb9c74284f83@ubuntu64> <ba681b9d-4096-4966-9fff-590716a78ed0@ubuntu64>

next in thread | previous in thread | raw e-mail | index | archive | help
On (15/11/2011 18:10), GR wrote:
> Hello list,
> 
> more insights since my last post. Here is a small code to trigger the bug (end of email).
> When you run it on 9.0-RC1, it gets an alias address instead of the main inet address:
> 
> % ./get-ip re0          
> inet: 192.168.2.10
> # Main address being 192.168.1.148
> 
> On 8.2-RELEASE, all goes well:
> % ./get-ip re0
> inet: PUBLIC_IP4
> 
> Is something broken, or a behaviour has changed since 8.2-RELEASE?

Your test case looks ok and works as expexted for me on 10-CURRENT, both
without aliases and after adding alias to interface. Perhaps it's the way
you add aliases (libdnet ?).

I've used:
ifconfing em0 alias OTHERIP


Thanks,
Gleb.

> 
> Best regards,
> 
> 
> --8<--
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <net/if.h>
> #include <sys/sockio.h>
> #include <string.h>
> #include <netinet/in.h>
> #include <arpa/inet.h>
> 
> int
> main(int argc, char *argv[])
> {
>    int fd;
>    struct ifreq ifr;
>    const struct sockaddr_in *sa;
> 
>    fd = socket(AF_INET, SOCK_DGRAM, 0);
>    if (fd < 0) {
>       perror("socket");
>       exit(-1);
>    }
> 
>    memset(&ifr, 0, sizeof(struct ifreq));
>    strlcpy(ifr.ifr_name, argv[1], sizeof(ifr.ifr_name));
> 
>    if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) {
>       sa = (const struct sockaddr_in *) &ifr.ifr_addr;
>       printf("inet: %s\n", inet_ntoa(sa->sin_addr));
>    }
>    else {
>       perror("ioctl");
>       exit(-1);
>    }
> 
>    exit(0);
> }
> --8<--
> 
> -- 
>   ^  ___  ___             http://www.GomoR.org/          <-+
>   | / __ |__/            Senior Security Engineer          |
>   | \__/ |  \     ---[ zsh$ alias psed='perl -pe ' ]---    |
>   +-->  Net::Frame <=> http://search.cpan.org/~gomor/  <---+
> 
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111115221349.GA8701>