[asterisk-commits] russell: trunk r98400 - in /trunk: ./ pbx/pbx_dundi.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jan 11 16:52:42 CST 2008
Author: russell
Date: Fri Jan 11 16:52:41 2008
New Revision: 98400
URL: http://svn.digium.com/view/asterisk?view=rev&rev=98400
Log:
Merged revisions 98390 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r98390 | russell | 2008-01-11 16:46:21 -0600 (Fri, 11 Jan 2008) | 9 lines
Fix up setting the EID on BSD based systems.
(closes issue #11646)
Reported by: caio1982
Patches:
dundi_osx_eid6.diff.txt uploaded by caio1982 (license 22)
dundi_osx_eid6-1.4.diff uploaded by caio1982 (license 22)
Tested by: caio1982, mvanbaak
........
Modified:
trunk/ (props changed)
trunk/pbx/pbx_dundi.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/pbx/pbx_dundi.c
URL: http://svn.digium.com/view/asterisk/trunk/pbx/pbx_dundi.c?view=diff&rev=98400&r1=98399&r2=98400
==============================================================================
--- trunk/pbx/pbx_dundi.c (original)
+++ trunk/pbx/pbx_dundi.c Fri Jan 11 16:52:41 2008
@@ -36,6 +36,11 @@
#include <sys/signal.h>
#include <pthread.h>
#include <net/if.h>
+
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__Darwin__)
+#include <net/if_dl.h>
+#include <ifaddrs.h>
+#endif
#include "asterisk/file.h"
#include "asterisk/logger.h"
@@ -399,8 +404,7 @@
if (ioctl(s, SIOCGIFHWADDR, &ifr))
continue;
memcpy(&global_eid, ((unsigned char *)&ifr.ifr_hwaddr) + 2, sizeof(global_eid));
- ast_debug(1, "Seeding global EID '%s' from '%s'\n",
- dundi_eid_to_str(eid_str, sizeof(eid_str), &global_eid), ifr.ifr_name);
+ ast_debug(1, "Seeding global EID '%s' from '%s' using 'siocgifhwaddr'\n", dundi_eid_to_str(eid_str, sizeof(eid_str), &global_eid), ifr.ifr_name);
close(s);
return;
}
@@ -413,12 +417,10 @@
if (getifaddrs(&ifap) == 0) {
struct ifaddrs *p;
for (p = ifap; p; p = p->ifa_next) {
- if (p->ifa_addr->sa_family == AF_LINK) {
+ if ((p->ifa_addr->sa_family == AF_LINK) && !(p->ifa_flags & IFF_LOOPBACK) && (p->ifa_flags & IFF_RUNNING)) {
struct sockaddr_dl* sdp = (struct sockaddr_dl*) p->ifa_addr;
- memcpy(
- &(global_eid.eid),
- sdp->sdl_data + sdp->sdl_nlen, 6);
- ast_debug(1, "Seeding global EID '%s' from '%s'\n", dundi_eid_to_str(eid_str, sizeof(eid_str), &global_eid), ifap->ifa_name);
+ memcpy(&(global_eid.eid), sdp->sdl_data + sdp->sdl_nlen, 6);
+ ast_debug(1, "Seeding global EID '%s' from '%s' using 'getifaddrs'\n", dundi_eid_to_str(eid_str, sizeof(eid_str), &global_eid), p->ifa_name);
freeifaddrs(ifap);
return;
}
@@ -427,7 +429,7 @@
}
#endif
#endif
- ast_log(LOG_NOTICE, "No ethernet interface found for seeding global EID You will have to set it manually.\n");
+ ast_log(LOG_NOTICE, "No ethernet interface found for seeding global EID. You will have to set it manually.\n");
}
static int get_trans_id(void)
More information about the asterisk-commits
mailing list