diff options
author | Memphiz <memphis@machzwo.de> | 2012-03-25 14:45:48 -0700 |
---|---|---|
committer | Memphiz <memphis@machzwo.de> | 2012-03-25 14:45:48 -0700 |
commit | 8edff7ead55f1a31e55425d47885dc96d3d55105 (patch) | |
tree | b8a4d63fb7ba047f2f03718950c08f628323892c | |
parent | b21ee76d65b0cbb8126d3543d2288715ea40050d (diff) | |
parent | 7546d91779b4b9b74fd1e2044b351ad7b3bb483f (diff) |
Merge pull request #528 from Memphiz/networkinfo
[ios/atv2/osx] - add GetNameServers and GetDefaultGateway using scutil
-rw-r--r-- | XBMC.xcodeproj/project.pbxproj | 6 | ||||
-rw-r--r-- | xbmc/network/linux/NetworkLinux.cpp | 40 |
2 files changed, 44 insertions, 2 deletions
diff --git a/XBMC.xcodeproj/project.pbxproj b/XBMC.xcodeproj/project.pbxproj index ec722a2b08..dc601bbdc5 100644 --- a/XBMC.xcodeproj/project.pbxproj +++ b/XBMC.xcodeproj/project.pbxproj @@ -656,6 +656,8 @@ DF98D98D1434F47D00A6EBE1 /* SkinVariable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF98D98A1434F47D00A6EBE1 /* SkinVariable.cpp */; }; DFAB049813F8376700B70BFB /* InertialScrollingHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFAB049613F8376700B70BFB /* InertialScrollingHandler.cpp */; }; DFAB049913F8376700B70BFB /* InertialScrollingHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DFAB049613F8376700B70BFB /* InertialScrollingHandler.cpp */; }; + DFC1B8F01464840E00B1BE79 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFC1B8EF1464840E00B1BE79 /* SystemConfiguration.framework */; }; + DFC1BA3414648D6500B1BE79 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFC1B8EF1464840E00B1BE79 /* SystemConfiguration.framework */; }; E306D12E0DDF7B590052C2AD /* XBMCHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E306D12C0DDF7B590052C2AD /* XBMCHelper.cpp */; }; E33206380D5070AA00435CE3 /* DVDDemuxVobsub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E33206370D5070AA00435CE3 /* DVDDemuxVobsub.cpp */; }; E33466A60D2E5103005A65EC /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E33466A50D2E5103005A65EC /* IOKit.framework */; }; @@ -2643,6 +2645,7 @@ DF98D98B1434F47D00A6EBE1 /* SkinVariable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkinVariable.h; sourceTree = "<group>"; }; DFAB049613F8376700B70BFB /* InertialScrollingHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InertialScrollingHandler.cpp; sourceTree = "<group>"; }; DFAB049713F8376700B70BFB /* InertialScrollingHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InertialScrollingHandler.h; sourceTree = "<group>"; }; + DFC1B8EF1464840E00B1BE79 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; E306D12C0DDF7B590052C2AD /* XBMCHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XBMCHelper.cpp; sourceTree = "<group>"; }; E306D12D0DDF7B590052C2AD /* XBMCHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBMCHelper.h; sourceTree = "<group>"; }; E33206370D5070AA00435CE3 /* DVDDemuxVobsub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DVDDemuxVobsub.cpp; sourceTree = "<group>"; }; @@ -4010,6 +4013,7 @@ F56C8CF3131F5DFD000AD0F6 /* libiconv.dylib in Frameworks */, F56C8CF6131F5E0B000AD0F6 /* libncurses.dylib in Frameworks */, 18404DA61396C31B00863BBA /* SlingboxLib.a in Frameworks */, + DFC1B8F01464840E00B1BE79 /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4043,6 +4047,7 @@ F5B5D64E133FC2E7007A4B4C /* librtv.a in Frameworks */, F5B5D650133FC312007A4B4C /* libxdaap.a in Frameworks */, 18404E711396E06C00863BBA /* SlingboxLib.a in Frameworks */, + DFC1BA3414648D6500B1BE79 /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4091,6 +4096,7 @@ F56C8CF5131F5E0B000AD0F6 /* libncurses.dylib */, F56C8CEF131F5DED000AD0F6 /* libxml2.dylib */, F56C8CE6131F5DC6000AD0F6 /* libz.dylib */, + DFC1B8EF1464840E00B1BE79 /* SystemConfiguration.framework */, E38E23910D2626E600618676 /* OpenGL.framework */, F59879070FBAA0C3008EF4FB /* QuartzCore.framework */, E35EF2540D380C3D00DB5CD5 /* QuickTime.framework */, diff --git a/xbmc/network/linux/NetworkLinux.cpp b/xbmc/network/linux/NetworkLinux.cpp index a419d59f7b..bba645fcd8 100644 --- a/xbmc/network/linux/NetworkLinux.cpp +++ b/xbmc/network/linux/NetworkLinux.cpp @@ -166,7 +166,24 @@ CStdString CNetworkInterfaceLinux::GetCurrentDefaultGateway(void) { CStdString result = ""; -#ifndef __APPLE__ +#if defined(TARGET_DARWIN) + FILE* pipe = popen("echo \"show State:/Network/Global/IPv4\" | scutil | grep Router", "r"); + if (pipe) + { + CStdString tmpStr; + char buffer[256] = {'\0'}; + if (fread(buffer, sizeof(char), sizeof(buffer), pipe) > 0 && !ferror(pipe)) + { + tmpStr = buffer; + result = tmpStr.Mid(11); + } + else + { + CLog::Log(LOGWARNING, "Unable to determine gateway"); + } + pclose(pipe); + } +#else FILE* fp = fopen("/proc/net/route", "r"); if (!fp) { @@ -394,7 +411,26 @@ void CNetworkLinux::queryInterfaceList() std::vector<CStdString> CNetworkLinux::GetNameServers(void) { std::vector<CStdString> result; -#ifndef __APPLE__ + +#if defined(TARGET_DARWIN) + //only finds the primary dns (0 :) + FILE* pipe = popen("echo \"show State:/Network/Global/DNS\" | scutil | grep \"0 :\" | tail -n1", "r"); + if (pipe) + { + CStdString tmpStr; + char buffer[256] = {'\0'}; + if (fread(buffer, sizeof(char), sizeof(buffer), pipe) > 0 && !ferror(pipe)) + { + tmpStr = buffer; + result.push_back(tmpStr.Mid(8)); + } + else + { + CLog::Log(LOGWARNING, "Unable to determine nameserver"); + } + pclose(pipe); + } +#else res_init(); for (int i = 0; i < _res.nscount; i ++) |