From bf3a95a3d129e18937f88c349bfe5cdcaef42d55 Mon Sep 17 00:00:00 2001 From: malaterre Date: Sat, 15 Jan 2005 22:40:23 +0000 Subject: [PATCH] STYLE: Fix some comment also rework the include stuff --- CMakeLists.txt | 1 + gdcmConfigure.h.in | 1 + src/gdcmUtil.cxx | 36 ++++++++++++++++-------------------- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 12d11f99..af56a03a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,7 @@ CHECK_INCLUDE_FILE("sys/sockio.h" CMAKE_HAVE_SYS_SOCKIO_H) CHECK_INCLUDE_FILE("net/if.h" CMAKE_HAVE_NET_IF_H) CHECK_INCLUDE_FILE("netinet/in.h" CMAKE_HAVE_NETINET_IN_H) CHECK_INCLUDE_FILE("net/if_dl.h" CMAKE_HAVE_NET_IF_DL_H) +CHECK_INCLUDE_FILE("net/if_arp.h" CMAKE_HAVE_NET_IF_ARP_H) CONFIGURE_FILE(${GDCM_SOURCE_DIR}/gdcmConfigure.h.in ${GDCM_BINARY_DIR}/gdcmConfigure.h @ONLY IMMEDIATE) diff --git a/gdcmConfigure.h.in b/gdcmConfigure.h.in index 83297de2..061b6072 100644 --- a/gdcmConfigure.h.in +++ b/gdcmConfigure.h.in @@ -47,6 +47,7 @@ #cmakedefine CMAKE_HAVE_NET_IF_H #cmakedefine CMAKE_HAVE_NETINET_IN_H #cmakedefine CMAKE_HAVE_NET_IF_DL_H +#cmakedefine CMAKE_HAVE_NET_IF_ARP_H /*--------------------------------------------------------------------------*/ diff --git a/src/gdcmUtil.cxx b/src/gdcmUtil.cxx index 559b21ee..d5be4c01 100644 --- a/src/gdcmUtil.cxx +++ b/src/gdcmUtil.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmUtil.cxx,v $ Language: C++ - Date: $Date: 2005/01/15 22:19:10 $ - Version: $Revision: 1.95 $ + Date: $Date: 2005/01/15 22:40:23 $ + Version: $Revision: 1.96 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -49,19 +49,6 @@ #include #endif -#ifdef __sun -//#include -#include -#include -#include -#else -//#include -//#include -//#include -#include -#include -#endif //__sun - // How do I do that in CMake ? #ifdef __APPLE__ #define HAVE_SA_LEN @@ -88,7 +75,10 @@ #ifdef CMAKE_HAVE_NET_IF_DL_H #include #endif - +#if defined(CMAKE_HAVE_NET_IF_ARP_H) && defined(__sun) +// This is absolutely necesseray on SunOS +#include +#endif namespace gdcm { @@ -626,6 +616,11 @@ long GetMacAddrSys ( unsigned char *addr) a = (unsigned char *) &ifr.ifr_hwaddr.sa_data; #else #ifdef SIOCGENADDR + // In theory this call should also work on Sun Solaris, but apparently + // SIOCGENADDR is not implemented properly thus the call + // ioctl(sd, SIOCGENADDR, &ifr) always returns errno=2 + // (No such file or directory) + // Furthermore the DLAPI seems to require full root access if (ioctl(sd, SIOCGENADDR, &ifr) < 0) continue; a = (unsigned char *) ifr.ifr_enaddr; @@ -663,10 +658,11 @@ long GetMacAddrSys ( unsigned char *addr) std::string Util::GetMACAddress() { - // This is a rip from: http://cplus.kompf.de/macaddr.html for Linux/CYGWIN, HPUX and AIX - // and http://tangentsoft.net/wskfaq/examples/src/snmpmac.cpp for windows version - // and http://groups-beta.google.com/group/sol.lists.freebsd.hackers/msg/0d0f862e05fce6c0 for the FreeBSD version - // and http://developer.apple.com/samplecode/GetPrimaryMACAddress/GetPrimaryMACAddress.html for MacOSX version + // This code is the result of a long internet search to find something + // as compact as possible (not OS independant). We only have to separate + // 3 OS: Win32, SunOS and 'real' POSIX + // http://groups-beta.google.com/group/comp.unix.solaris/msg/ad36929d783d63be + // http://bdn.borland.com/article/0,1410,26040,00.html u_char addr[6]; std::string macaddr; -- 2.45.0