Bypass user .wgetrc config file use when ATOMS uses no proxy. 09/15609/4
Bruno JOFRET [Mon, 1 Dec 2014 09:52:02 +0000 (10:52 +0100)]
Change-Id: I307dcef7208b12f8293379a8a29356efe555ce8e

scilab/CHANGES_5.5.X
scilab/modules/atoms/macros/atomsGetConfig.sci
scilab/modules/atoms/macros/atoms_internals/atomsDownload.sci
scilab/modules/atoms/tests/nonreg_tests/bug_13674.dia.ref [new file with mode: 0644]
scilab/modules/atoms/tests/nonreg_tests/bug_13674.tst [new file with mode: 0644]

index d306e59..735bbac 100644 (file)
@@ -25,6 +25,8 @@ Scilab Bug Fixes
 
 * Bug #13673 fixed - Anti-aliasing of xpoly marks did not render correctly.
 
+* Bug #13674 fixed - User .wgetrc configuration file is now by-passed when ATOMS does not use a proxy.
+
 * Bug #13677 fixed - Indentation of examples in assert_checkerror help page was wrong.
 
 
index bc98b92..3a9213c 100644 (file)
@@ -63,6 +63,11 @@ function result = atomsGetConfig(field)
         i = find(pref_attrs(1, :) == field);
         if ~isempty(i) then
             result = getPreferencesValue("//web/body/proxy", pref_attrs(2, i));
+            if result == "true" then
+                result = "True";
+            elseif result == "false" then
+                result = "False";
+            end
             return;
         end
 
index 59ffe3f..13e3d8e 100644 (file)
@@ -163,6 +163,11 @@ function atomsDownload(url_in,file_out,md5sum)
 
         end
 
+        if WGET & atomsGetConfig("useProxy") == "False" then
+            proxy_user_arg = " --no-proxy";
+        end
+
+
         if getos() == "Windows" & CURL then
             download_cmd = """" + pathconvert(SCI+"/tools/curl/curl.exe",%F) + """" + proxy_host_arg + proxy_user_arg + timeout_arg + " -s """ + url_in + """ -o """ + file_out + """";
         elseif CURL then
diff --git a/scilab/modules/atoms/tests/nonreg_tests/bug_13674.dia.ref b/scilab/modules/atoms/tests/nonreg_tests/bug_13674.dia.ref
new file mode 100644 (file)
index 0000000..4a100e7
--- /dev/null
@@ -0,0 +1,42 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Bruno JOFRET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH ATOMS -->
+//
+// <-- LINUX ONLY -->
+//
+// <-- Non-regression test for bug 13674 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13674
+//
+// <-- Short Description -->
+// atomsSystemUpdate() failed if USER has it's own wgetrc config file
+// using proxy settings
+// Save user .wgetrc file for test
+restoreUserConfig = %f;
+if isfile("~/.wgetrc") then
+    copyfile("~/.wgetrc", "~/.wgetrc.bak");
+    restoreUserConfig = %t;
+end
+fd = mopen("~/.wgetrc", "w+");
+mputl("use_proxy = on", fd);
+mputl("http_proxy = http://proxy_name:1234/", fd);
+mputl("https_proxy = http://proxy_name:1234/", fd);
+mputl("ftp_proxy = http://proxy_name:1234/", fd);
+mclose(fd);
+status = atomsGetConfig("useProxy");
+atomsSetConfig("useProxy", "False");
+atomsSystemUpdate();
+Scanning repository http://atoms.scilab.org/5.5 ... Done
+
+// Restore values
+atomsSetConfig("useProxy", status);
+if restoreUserConfig then
+    copyfile("~/.wgetrc.bak", "~/.wgetrc");
+else
+    mdelete("~/.wgetrc");
+end
diff --git a/scilab/modules/atoms/tests/nonreg_tests/bug_13674.tst b/scilab/modules/atoms/tests/nonreg_tests/bug_13674.tst
new file mode 100644 (file)
index 0000000..08216cf
--- /dev/null
@@ -0,0 +1,46 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Bruno JOFRET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH ATOMS -->
+//
+// <-- LINUX ONLY -->
+//
+// <-- Non-regression test for bug 13674 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13674
+//
+// <-- Short Description -->
+// atomsSystemUpdate() failed if USER has it's own wgetrc config file
+// using proxy settings
+
+// Save user .wgetrc file for test
+restoreUserConfig = %f;
+if isfile("~/.wgetrc") then
+    copyfile("~/.wgetrc", "~/.wgetrc.bak");
+    restoreUserConfig = %t;
+end
+
+fd = mopen("~/.wgetrc", "w+");
+mputl("use_proxy = on", fd);
+mputl("http_proxy = http://proxy_name:1234/", fd);
+mputl("https_proxy = http://proxy_name:1234/", fd);
+mputl("ftp_proxy = http://proxy_name:1234/", fd);
+mclose(fd);
+
+status = atomsGetConfig("useProxy");
+atomsSetConfig("useProxy", "False");
+
+atomsSystemUpdate();
+
+// Restore values
+atomsSetConfig("useProxy", status);
+if restoreUserConfig then
+    copyfile("~/.wgetrc.bak", "~/.wgetrc");
+else
+    mdelete("~/.wgetrc");
+end