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
Hi, 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. Cheers, Antonio Huete ---------------------------------------- Bug #1897: SIOCGIFADDR doesn't work http://bugs.dragonflybsd.org/issues/1897#change-11909 * Author: steve * Status: Feedback * Priority: Low * Assignee: tuxillo * Category: Networking * Target version: 3.8.0 ---------------------------------------- Hi, 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"); exit(1); } strcpy(ifr.ifr_name, "re0"); ifr.ifr_addr.sa_family = AF_INET; if (ioctl (sock, SIOCGIFADDR, &ifr) < 0) { perror("ioctl"); exit(1); } 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
