[svn-commits] russell: branch 1.8 r353077 - /branches/1.8/main/netsock.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Fri Jan 27 22:25:29 CST 2012
Author: russell
Date: Fri Jan 27 22:25:25 2012
New Revision: 353077
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=353077
Log:
Update ast_set_default_eid() to find more network interfaces.
As of Fedora 15, ethN is not the name of ethernet interfaces. The names
are emN or pciN. Update some code that searched for interfaces named
ethN to look for the new names, as well. For more information about why
this change was made, see this page:
http://domsch.com/blog/?p=455
Modified:
branches/1.8/main/netsock.c
Modified: branches/1.8/main/netsock.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/main/netsock.c?view=diff&rev=353077&r1=353076&r2=353077
==============================================================================
--- branches/1.8/main/netsock.c (original)
+++ branches/1.8/main/netsock.c Fri Jan 27 22:25:25 2012
@@ -243,10 +243,22 @@
if (s < 0)
return;
for (x = 0; x < 10; x++) {
+ static const char *prefixes[] = { "eth", "em", "pci" };
+ unsigned int i;
+
memset(&ifr, 0, sizeof(ifr));
- snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "eth%d", x);
- if (ioctl(s, SIOCGIFHWADDR, &ifr))
+
+ for (i = 0; i < ARRAY_LEN(prefixes); i++) {
+ snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s%d", prefixes[i], x);
+ if (!ioctl(s, SIOCGIFHWADDR, &ifr)) {
+ break;
+ }
+ }
+
+ if (i == ARRAY_LEN(prefixes)) {
continue;
+ }
+
memcpy(eid, ((unsigned char *)&ifr.ifr_hwaddr) + 2, sizeof(*eid));
ast_debug(1, "Seeding global EID '%s' from '%s' using 'siocgifhwaddr'\n", ast_eid_to_str(eid_str, sizeof(eid_str), eid), ifr.ifr_name);
close(s);
More information about the svn-commits
mailing list