[DragonFlyBSD - Bug #1897] SIOCGIFADDR doesn't work

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Mon Mar 31 15:30:12 PDT 2014

Issue #1897 has been updated by tuxillo.

Description updated
Category set to Networking
Assignee set to tuxillo
Priority changed from Normal to Low
Target version set to 3.8.0


Commit 401c752a1960c193055c3ab3e6830eb2f259d1f4 is already on latest stable (since it went to mater a year and a half ago or so).
Let me check the other ones.

Antonio Huete

Bug #1897: SIOCGIFADDR doesn't work

* Author: steve
* Status: Feedback
* Priority: Low
* Assignee: tuxillo
* Category: Networking
* Target version: 3.8.0

	I found this while trying to get ushare to work - the SIOCGIFADDR
ioctl doesn't set the IP address (at least for re devices), what you get is
whatever was in the struct ifreq before the call.

	Running v2.9.0.105.gba1cb-DEVELOPMENT - but it's been going on for
a while I just haven't got to the bottom of the problem until now.

	My test code (below) always prints 0.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
#include <net/if_dl.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <netinet/in.h>

int main (int argc, char **argv)
        int sock;
        int32_t ip;
        struct ifreq ifr;

        memset (&ifr, 0, sizeof ifr);
        sock = socket (AF_INET, SOCK_STREAM, 0);
        if (sock < 0) {
                perror ("socket");

        strcpy(ifr.ifr_name, "re0");
        ifr.ifr_addr.sa_family = AF_INET;
        if (ioctl (sock, SIOCGIFADDR, &ifr) < 0) {
        ip = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr.s_addr;
        printf("%x\n", ip);

You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account

More information about the Bugs mailing list