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>
