aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMemphiz <memphis@machzwo.de>2012-03-25 14:45:48 -0700
committerMemphiz <memphis@machzwo.de>2012-03-25 14:45:48 -0700
commit8edff7ead55f1a31e55425d47885dc96d3d55105 (patch)
treeb8a4d63fb7ba047f2f03718950c08f628323892c
parentb21ee76d65b0cbb8126d3543d2288715ea40050d (diff)
parent7546d91779b4b9b74fd1e2044b351ad7b3bb483f (diff)
Merge pull request #528 from Memphiz/networkinfo
[ios/atv2/osx] - add GetNameServers and GetDefaultGateway using scutil
-rw-r--r--XBMC.xcodeproj/project.pbxproj6
-rw-r--r--xbmc/network/linux/NetworkLinux.cpp40
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 ++)