You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by lk...@apache.org on 2021/01/11 16:32:39 UTC

[netbeans] branch release120 updated: Include both KDE4 and KDE5 proxy settings.

This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch release120
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/release120 by this push:
     new f77f796  Include both KDE4 and KDE5 proxy settings.
f77f796 is described below

commit f77f7961f5584e47e70c7b16d48171dda181984d
Author: Svata Dedic <sv...@oracle.com>
AuthorDate: Thu Jul 16 18:34:12 2020 +0200

    Include both KDE4 and KDE5 proxy settings.
---
 platform/core.network/manifest.mf                  |  2 +-
 .../core/network/proxy/kde/KdeNetworkProxy.java    | 70 +++++++++++++++-------
 2 files changed, 49 insertions(+), 23 deletions(-)

diff --git a/platform/core.network/manifest.mf b/platform/core.network/manifest.mf
index f2ba9d2..b26315b 100644
--- a/platform/core.network/manifest.mf
+++ b/platform/core.network/manifest.mf
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
 OpenIDE-Module: org.netbeans.core.network
 OpenIDE-Module-Localizing-Bundle: org/netbeans/core/network/proxy/Bundle.properties
 OpenIDE-Module-Provides: org.netbeans.core.ProxySettings.Reloader
-OpenIDE-Module-Specification-Version: 1.20
+OpenIDE-Module-Specification-Version: 1.20.1
 OpenIDE-Module-Recommends: javax.script.ScriptEngine.js
diff --git a/platform/core.network/src/org/netbeans/core/network/proxy/kde/KdeNetworkProxy.java b/platform/core.network/src/org/netbeans/core/network/proxy/kde/KdeNetworkProxy.java
index 553d1e5..dc165ac 100644
--- a/platform/core.network/src/org/netbeans/core/network/proxy/kde/KdeNetworkProxy.java
+++ b/platform/core.network/src/org/netbeans/core/network/proxy/kde/KdeNetworkProxy.java
@@ -25,7 +25,13 @@ import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -59,11 +65,13 @@ public class KdeNetworkProxy implements NetworkProxyResolver {
     private final static String KIOSLAVERC_PROXY_TYPE_PAC = "2"; //NOI18N
     private final static String KIOSLAVERC_PROXY_TYPE_AUTO = "3"; //NOI18N
     private final static String KIOSLAVERC_PROXY_TYPE_SYSTEM = "4"; //NOI18N    
-    private final static String KIOSLAVERC_PATH_IN_HOME = ".kde/share/config/kioslaverc"; //NOI18N 
-    private final String KIOSLAVERC_PATH;
+    private final static String KIOSLAVERC_PATH_IN_HOME = ".config/kioslaverc"; //NOI18N 
+    private final static String KIOSLAVERC_PATH_IN_HOME_KDE4 = ".kde/share/config/kioslaverc"; //NOI18N 
+    
+    private final List<Path> KIOSLAVERC_PATHS;
 
     public KdeNetworkProxy() {
-        KIOSLAVERC_PATH = getKioslavercPath();
+        KIOSLAVERC_PATHS = getKioslavercPaths();
     }
 
     @Override
@@ -77,14 +85,21 @@ public class KdeNetworkProxy implements NetworkProxyResolver {
             return new NetworkProxySettings(false);
         }
 
-        if (proxyType.equals(KIOSLAVERC_PROXY_TYPE_NONE) || proxyType.equals(KIOSLAVERC_PROXY_TYPE_AUTO)) {
+        if (proxyType.equals(KIOSLAVERC_PROXY_TYPE_NONE)) {
             LOGGER.log(Level.INFO, "KDE system proxy resolver: direct (proxy type: {0})", proxyType); //NOI18N
             return new NetworkProxySettings();
         }
 
-        if (proxyType.equals(KIOSLAVERC_PROXY_TYPE_PAC)) {
-            LOGGER.log(Level.INFO, "KDE system proxy resolver: auto - PAC"); //NOI18N
-            String pacFileUrl = kioslavercMap.get(KIOSLAVERC_PROXY_CONFIG_SCRIPT);
+        if (proxyType.equals(KIOSLAVERC_PROXY_TYPE_PAC)  || proxyType.equals(KIOSLAVERC_PROXY_TYPE_AUTO)) {
+            String pacFileUrl;
+            
+            if (proxyType.equals(KIOSLAVERC_PROXY_TYPE_AUTO)) {
+                LOGGER.log(Level.INFO, "KDE system proxy resolver: auto"); //NOI18N
+                pacFileUrl = "http://wpad/wpad.dat"; // NOI18N
+            } else {
+                LOGGER.log(Level.INFO, "KDE system proxy resolver: auto - PAC"); //NOI18N
+                pacFileUrl = kioslavercMap.get(KIOSLAVERC_PROXY_CONFIG_SCRIPT);
+            }
             if (pacFileUrl != null) {
                 LOGGER.log(Level.INFO, "KDE system proxy resolver: PAC URL ({0})", pacFileUrl); //NOI18N
                 return new NetworkProxySettings(pacFileUrl);
@@ -129,14 +144,16 @@ public class KdeNetworkProxy implements NetworkProxyResolver {
      * @return Map of keys and values from kioslaverc group Proxy settings.
      */
     private Map<String, String> getKioslavercMap() {
-        File kioslavercFile = new File(KIOSLAVERC_PATH);
-        Map<String, String> map = new HashMap<String, String>();
-
-        if (kioslavercFile.exists()) {
-            try {
-                FileInputStream fis = new FileInputStream(kioslavercFile);
-                DataInputStream dis = new DataInputStream(fis);
-                BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+        boolean fileExists = false;
+        for (Path p : KIOSLAVERC_PATHS) {
+            if (!Files.isRegularFile(p)) {
+                continue;
+            }
+            fileExists = true;
+            Map<String, String> map = new HashMap<String, String>();
+            boolean groupFound = false;
+            
+            try (BufferedReader br = Files.newBufferedReader(p)) {
                 String line;
                 boolean inGroup = false;
                 while ((line = br.readLine()) != null) {
@@ -151,19 +168,25 @@ public class KdeNetworkProxy implements NetworkProxyResolver {
                         }
                     } else if (line.startsWith(KIOSLAVERC_PROXY_SETTINGS_GROUP)) {
                         inGroup = true;
+                        groupFound = true;
                     }
                 }
-                dis.close();
             } catch (FileNotFoundException fnfe) {
                 LOGGER.log(Level.SEVERE, "Cannot read file: ", fnfe);
             } catch (IOException ioe) {
                 LOGGER.log(Level.SEVERE, "Cannot read file: ", ioe);
             }
+            if (groupFound) {
+                return map;
+            }
+        }
+        
+        if (fileExists) {
+            LOGGER.log(Level.WARNING, "KDE system proxy resolver: The kioslaverc file does not contain proxy configuration ({0})", KIOSLAVERC_PATHS);
         } else {
-            LOGGER.log(Level.WARNING, "KDE system proxy resolver: The kioslaverc file not found ({0})", KIOSLAVERC_PATH);
+            LOGGER.log(Level.WARNING, "KDE system proxy resolver: The kioslaverc file not found ({0})", KIOSLAVERC_PATHS);
         }                
-
-        return map;
+        return Collections.emptyMap();
     }
 
     /**
@@ -171,13 +194,16 @@ public class KdeNetworkProxy implements NetworkProxyResolver {
      * 
      * @return Path of the kioslaverc config file.
      */
-    private String getKioslavercPath() {
+    private List<Path> getKioslavercPaths() {
         String homePath = System.getenv(HOME);
 
         if (homePath != null) {
-            return homePath + File.separator + KIOSLAVERC_PATH_IN_HOME;
+            return Arrays.asList(
+                        Paths.get(homePath, KIOSLAVERC_PATH_IN_HOME),
+                        Paths.get(homePath, KIOSLAVERC_PATH_IN_HOME_KDE4)
+            );
         } else {
-            return EMPTY_STRING;
+            return Collections.emptyList();
         }
     }
     


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists