New class to check if there is an active & connected NIC, it will disregard virtual...
authorGeorge Pantazis <gpant@noc.grnet.gr>
Wed, 2 May 2012 15:19:08 +0000 (18:19 +0300)
committerGeorge Pantazis <gpant@noc.grnet.gr>
Wed, 2 May 2012 15:19:08 +0000 (18:19 +0300)
Signed-off-by: George Pantazis <gpant@noc.grnet.gr>

trunk/Pithos.Client.WPF/Properties/AssemblyInfo.cs
trunk/Pithos.Client.WPF/Properties/Settings.Designer.cs
trunk/Pithos.Client.WPF/Properties/Settings.settings
trunk/Pithos.Client.WPF/app.config
trunk/Pithos.Core/NetworkUtils.cs [new file with mode: 0644]
trunk/Pithos.Core/Pithos.Core.csproj

index 9246bf5..1aaf0af 100644 (file)
@@ -93,5 +93,5 @@ using System.Windows;
 // You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.7.20431.0")]
-[assembly: AssemblyFileVersionAttribute("0.7.20431.0")]
+[assembly: AssemblyVersion("0.7.20434.0")]
+[assembly: AssemblyFileVersionAttribute("0.7.20434.0")]
index 51314d3..220d9ff 100644 (file)
@@ -1,7 +1,7 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.530
+//     Runtime Version:4.0.30319.431
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -389,6 +389,20 @@ namespace Pithos.Client.WPF.Properties {
         
         [global::System.Configuration.ApplicationScopedSettingAttribute()]
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute(@"
+                                       <ArrayOfServerSettings xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
+                                               <ServerSettings>
+                                                       <ServerUri>https://pithos.okeanos.grnet.gr</ServerUri>
+                                                       <LoginUri>https://pithos.okeanos.grnet.gr/login</LoginUri>
+                                                       <LogoutUri>https://accounts.okeanos.grnet.gr/im/logout</LogoutUri>
+                                               </ServerSettings>
+                                               <ServerSettings>
+                                                       <ServerUri>https://pithos.dev.grnet.gr</ServerUri>
+                                                       <LoginUri>https://pithos.dev.grnet.gr/login</LoginUri>
+                                                       <LogoutUri>https://pithos.dev.grnet.gr/im/logout</LogoutUri>
+                                               </ServerSettings>
+                                       </ArrayOfServerSettings>
+                               ")]
         public global::Pithos.Interfaces.ServersCollection Servers {
             get {
                 return ((global::Pithos.Interfaces.ServersCollection)(this["Servers"]));
index 82de532..d4af2ad 100644 (file)
       <Value Profile="(Default)">False</Value>
     </Setting>
     <Setting Name="Servers" Type="Pithos.Interfaces.ServersCollection" Scope="Application">
-      <Value Profile="(Default)" />
+      <Value Profile="(Default)">
+                                       &lt;ArrayOfServerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
+                                               &lt;ServerSettings&gt;
+                                                       &lt;ServerUri&gt;https://pithos.okeanos.grnet.gr&lt;/ServerUri&gt;
+                                                       &lt;LoginUri&gt;https://pithos.okeanos.grnet.gr/login&lt;/LoginUri&gt;
+                                                       &lt;LogoutUri&gt;https://accounts.okeanos.grnet.gr/im/logout&lt;/LogoutUri&gt;
+                                               &lt;/ServerSettings&gt;
+                                               &lt;ServerSettings&gt;
+                                                       &lt;ServerUri&gt;https://pithos.dev.grnet.gr&lt;/ServerUri&gt;
+                                                       &lt;LoginUri&gt;https://pithos.dev.grnet.gr/login&lt;/LoginUri&gt;
+                                                       &lt;LogoutUri&gt;https://pithos.dev.grnet.gr/im/logout&lt;/LogoutUri&gt;
+                                               &lt;/ServerSettings&gt;
+                                       &lt;/ArrayOfServerSettings&gt;
+                               </Value>
     </Setting>
   </Settings>
 </SettingsFile>
\ No newline at end of file
index 79da321..6cf45a1 100644 (file)
        </system.diagnostics>
        <userSettings>
                <Pithos.Client.WPF.Properties.Settings>
-                       <setting name="PithosPath" serializeAs="String">
-                               <value>e:\Pithos</value>
-                       </setting>
-                       <setting name="IconPath" serializeAs="String">
-                               <value>C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle</value>
-                       </setting>
-                       <setting name="ProxyServer" serializeAs="String">
-                               <value />
-                       </setting>
-                       <setting name="ProxyPort" serializeAs="String">
-                               <value>8080</value>
-                       </setting>
-                       <setting name="ProxyUsername" serializeAs="String">
-                               <value />
-                       </setting>
-                       <setting name="ProxyPassword" serializeAs="String">
-                               <value />
-                       </setting>
-                       <setting name="ProxyAuthentication" serializeAs="String">
-                               <value>True</value>
-                       </setting>
-                       <setting name="ExtensionsActivated" serializeAs="String">
-                               <value>True</value>
-                       </setting>
-                       <setting name="UserName" serializeAs="String">
-                               <value>pkanavos</value>
-                       </setting>
-                       <setting name="ApiKey" serializeAs="String">
-                               <value>9d3cb7b231e96f72ebe96af1c6cd5112</value>
-                       </setting>
-                       <setting name="ShowDesktopNotifications" serializeAs="String">
-                               <value>True</value>
-                       </setting>
-                       <setting name="StartOnSystemStartup" serializeAs="String">
-                               <value>True</value>
-                       </setting>
-                       <setting name="UseNoProxy" serializeAs="String">
-                               <value>False</value>
-                       </setting>
-                       <setting name="UseDefaultProxy" serializeAs="String">
-                               <value>True</value>
-                       </setting>
-                       <setting name="UseManualProxy" serializeAs="String">
-                               <value>False</value>
-                       </setting>
-                       <setting name="MustUpgrade" serializeAs="String">
-                               <value>True</value>
-                       </setting>
-                       <setting name="PollingInterval" serializeAs="String">
-                               <value>10</value>
-                       </setting>
-                       <setting name="ProxyDomain" serializeAs="String">
-                               <value />
-                       </setting>
-                       <setting name="HashingParallelism" serializeAs="String">
-                               <value>1</value>
-                       </setting>
-                       <setting name="StartupDelay" serializeAs="String">
-                               <value>00:01:00</value>
-                       </setting>
-                       <setting name="UpdateDiagnostics" serializeAs="String">
-                               <value>False</value>
-                       </setting>
-                       <setting name="UpdateCheckInterval" serializeAs="String">
-                               <value>24.00:00:00</value>
-                       </setting>
-                       <setting name="DebugLoggingEnabled" serializeAs="String">
-                               <value>False</value>
-                       </setting>
-                       <setting name="IgnoreCertificateErrors" serializeAs="String">
-                               <value>False</value>
-                       </setting>
-               </Pithos.Client.WPF.Properties.Settings>
+   <setting name="PithosPath" serializeAs="String">
+    <value>e:\Pithos</value>
+   </setting>
+   <setting name="IconPath" serializeAs="String">
+    <value>C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle</value>
+   </setting>
+   <setting name="ProxyServer" serializeAs="String">
+    <value />
+   </setting>
+   <setting name="ProxyPort" serializeAs="String">
+    <value>8080</value>
+   </setting>
+   <setting name="ProxyUsername" serializeAs="String">
+    <value />
+   </setting>
+   <setting name="ProxyPassword" serializeAs="String">
+    <value />
+   </setting>
+   <setting name="ProxyAuthentication" serializeAs="String">
+    <value>True</value>
+   </setting>
+   <setting name="ExtensionsActivated" serializeAs="String">
+    <value>True</value>
+   </setting>
+   <setting name="UserName" serializeAs="String">
+    <value>pkanavos</value>
+   </setting>
+   <setting name="ApiKey" serializeAs="String">
+    <value>9d3cb7b231e96f72ebe96af1c6cd5112</value>
+   </setting>
+   <setting name="ShowDesktopNotifications" serializeAs="String">
+    <value>True</value>
+   </setting>
+   <setting name="StartOnSystemStartup" serializeAs="String">
+    <value>True</value>
+   </setting>
+   <setting name="UseNoProxy" serializeAs="String">
+    <value>False</value>
+   </setting>
+   <setting name="UseDefaultProxy" serializeAs="String">
+    <value>True</value>
+   </setting>
+   <setting name="UseManualProxy" serializeAs="String">
+    <value>False</value>
+   </setting>
+   <setting name="MustUpgrade" serializeAs="String">
+    <value>True</value>
+   </setting>
+   <setting name="PollingInterval" serializeAs="String">
+    <value>10</value>
+   </setting>
+   <setting name="ProxyDomain" serializeAs="String">
+    <value />
+   </setting>
+   <setting name="HashingParallelism" serializeAs="String">
+    <value>1</value>
+   </setting>
+   <setting name="StartupDelay" serializeAs="String">
+    <value>00:01:00</value>
+   </setting>
+   <setting name="UpdateDiagnostics" serializeAs="String">
+    <value>False</value>
+   </setting>
+   <setting name="UpdateCheckInterval" serializeAs="String">
+    <value>24.00:00:00</value>
+   </setting>
+   <setting name="DebugLoggingEnabled" serializeAs="String">
+    <value>False</value>
+   </setting>
+   <setting name="IgnoreCertificateErrors" serializeAs="String">
+    <value>False</value>
+   </setting>
+  </Pithos.Client.WPF.Properties.Settings>
        </userSettings>
        <startup>
                <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
        </startup>
        <applicationSettings>
                <Pithos.Client.WPF.Properties.Settings>
-                       <setting name="CloudfilesAuthenticationUrl" serializeAs="String">
-                               <value>https://auth.api.rackspacecloud.com</value>
-                       </setting>
-                       <setting name="FeedbackUri" serializeAs="String">
-                               <value>https://pithos.dev.grnet.gr/im/feedback</value>
-                       </setting>
-                       <setting name="ProductionServer" serializeAs="String">
-                               <value>https://pithos.okeanos.grnet.gr</value>
-                       </setting>
-                       <setting name="DevelopmentServer" serializeAs="String">
-                               <value>https://pithos.dev.grnet.gr</value>
-                       </setting>
-                       <setting name="UpdateUrl" serializeAs="String">
-                               <value>https://code.grnet.gr/projects/pithos-ms-client/repository/revisions/master/raw/trunk/Pithos.Installer/versioninfo.xml</value>
-                       </setting>
-                       <setting name="FileIdleTimeout" serializeAs="String">
-                               <value>00:00:10</value>
-                       </setting>
-                       <setting name="UpdateForceCheck" serializeAs="String">
-                               <value>True</value>
-                       </setting>
-                       <setting name="Servers" serializeAs="Xml">
-                               <value>
-                                       <ArrayOfServerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                                                       xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-                                               <ServerSettings>
-                                                       <ServerUri>https://pithos.okeanos.grnet.gr</ServerUri>
-                                                       <LoginUri>https://pithos.okeanos.grnet.gr/login</LoginUri>
-                                                       <LogoutUri>https://accounts.okeanos.grnet.gr/im/logout</LogoutUri>
-                                               </ServerSettings>
-                                               <ServerSettings>
-                                                       <ServerUri>https://pithos.dev.grnet.gr</ServerUri>
-                                                       <LoginUri>https://pithos.dev.grnet.gr/login</LoginUri>
-                                                       <LogoutUri>https://pithos.dev.grnet.gr/im/logout</LogoutUri>
-                                               </ServerSettings>
-                                       </ArrayOfServerSettings>
-                               </value>
-                       </setting>      
-               </Pithos.Client.WPF.Properties.Settings>
+   <setting name="CloudfilesAuthenticationUrl" serializeAs="String">
+    <value>https://auth.api.rackspacecloud.com</value>
+   </setting>
+   <setting name="FeedbackUri" serializeAs="String">
+    <value>https://pithos.dev.grnet.gr/im/feedback</value>
+   </setting>
+   <setting name="ProductionServer" serializeAs="String">
+    <value>https://pithos.okeanos.grnet.gr</value>
+   </setting>
+   <setting name="DevelopmentServer" serializeAs="String">
+    <value>https://pithos.dev.grnet.gr</value>
+   </setting>
+   <setting name="UpdateUrl" serializeAs="String">
+    <value>https://code.grnet.gr/projects/pithos-ms-client/repository/revisions/master/raw/trunk/Pithos.Installer/versioninfo.xml</value>
+   </setting>
+   <setting name="FileIdleTimeout" serializeAs="String">
+    <value>00:00:10</value>
+   </setting>
+   <setting name="UpdateForceCheck" serializeAs="String">
+    <value>True</value>
+   </setting>
+  </Pithos.Client.WPF.Properties.Settings>
        </applicationSettings>
        <log4net>
                <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
diff --git a/trunk/Pithos.Core/NetworkUtils.cs b/trunk/Pithos.Core/NetworkUtils.cs
new file mode 100644 (file)
index 0000000..eaa69be
--- /dev/null
@@ -0,0 +1,73 @@
+#region
+/* -----------------------------------------------------------------------
+ * <copyright file="NetworUtils.cs" company="GRNet">
+ * 
+ * Copyright 2011-2012 GRNET S.A. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above
+ *      copyright notice, this list of conditions and the following
+ *      disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above
+ *      copyright notice, this list of conditions and the following
+ *      disclaimer in the documentation and/or other materials
+ *      provided with the distribution.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and
+ * documentation are those of the authors and should not be
+ * interpreted as representing official policies, either expressed
+ * or implied, of GRNET S.A.
+ * </copyright>
+ * -----------------------------------------------------------------------
+ */
+#endregion
+using System;
+using System.Net.NetworkInformation;
+
+namespace pithos.core
+{
+    public class NetworkUtils
+    {
+        public static bool IsNICConnected(long SpeedThreshold)
+        {
+            if (!NetworkInterface.GetIsNetworkAvailable())
+                return false;
+
+            foreach (NetworkInterface nIF in NetworkInterface.GetAllNetworkInterfaces())
+            {
+                /// exit for: Nick is down, loop or tunnel
+                if ((nIF.OperationalStatus != OperationalStatus.Up) || (nIF.NetworkInterfaceType == NetworkInterfaceType.Loopback) || (nIF.NetworkInterfaceType == NetworkInterfaceType.Tunnel))
+                    continue;
+
+                /// Exit for: Specified speed in Bytes. ex : 7200000 (For minimum an HSDPA Interface)
+                if (nIF.Speed < SpeedThreshold)
+                    continue;
+
+                /// Exit for: Any non standard NIC
+                if ((nIF.Description.IndexOf("virtual", StringComparison.OrdinalIgnoreCase) >= 0) || (nIF.Name.IndexOf("virtual", StringComparison.OrdinalIgnoreCase) >= 0))
+                    continue;
+
+                return true;
+            }
+            return false;
+        }
+    }
+}
\ No newline at end of file
index 613b632..7594eb7 100644 (file)
     <Compile Include="Agents\SnapshotDifferencer.cs" />
     <Compile Include="Agents\Uploader.cs" />
     <Compile Include="Agents\WorkflowAgent.cs" />
+    <Compile Include="CodeFile1.cs" />
     <Compile Include="DynamicDictionary.cs" />
     <Compile Include="EnumerableExtensions.cs" />
     <Compile Include="FileHashMap.cs" />