From 392abf6bf98fae1c29d777be3b0eed41c43cd9f6 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 23 Jul 2004 11:49:59 +0000 Subject: System.java (static): Set http.agent system property when not yet set. * java/lang/System.java (static): Set http.agent system property when not yet set. * gnu/java/net/protocol/http/Connection.java (static): Get httpAgent from system property inside AccessController.doPrivileged() call. (proxyPort): Made package private. (proxyInUse): Likewise. (proxyHost): Likewise. (userAgent): Likewise. From-SVN: r85078 --- libjava/gnu/java/net/protocol/http/Connection.java | 71 ++++++++++++---------- 1 file changed, 39 insertions(+), 32 deletions(-) (limited to 'libjava/gnu') diff --git a/libjava/gnu/java/net/protocol/http/Connection.java b/libjava/gnu/java/net/protocol/http/Connection.java index 44239e1..728d14a 100644 --- a/libjava/gnu/java/net/protocol/http/Connection.java +++ b/libjava/gnu/java/net/protocol/http/Connection.java @@ -1,5 +1,6 @@ /* HttpURLConnection.java -- URLConnection class for HTTP protocol - Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -52,6 +53,8 @@ import java.net.ProtocolException; import java.net.Socket; import java.net.URL; import java.net.URLConnection; +import java.security.AccessController; +import java.security.PrivilegedAction; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -76,41 +79,45 @@ public final class Connection extends HttpURLConnection * The socket we are connected to */ private Socket socket; - private static int proxyPort = 80; - private static boolean proxyInUse = false; - private static String proxyHost = null; - - private static final String userAgent; + + // Properties depeending on system properties settings + static int proxyPort = 80; + static boolean proxyInUse = false; + static String proxyHost = null; + static String userAgent; static { - // Recognize some networking properties listed at - // http://java.sun.com/j2se/1.4/docs/guide/net/properties.html. - String port = null; - proxyHost = System.getProperty("http.proxyHost"); - if (proxyHost != null) - { - proxyInUse = true; - if ((port = System.getProperty("http.proxyPort")) != null) - { - try - { - proxyPort = Integer.parseInt(port); - } - catch (Throwable t) - { - // Nothing. - } - } - } + // Make sure access control for system properties depends only on + // our class ProtectionDomain, not on any (indirect) callers. + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() + { + // Recognize some networking properties listed at + // http://java.sun.com/j2se/1.4/docs/guide/net/properties.html. + String port = null; + proxyHost = System.getProperty("http.proxyHost"); + if (proxyHost != null) + { + proxyInUse = true; + if ((port = System.getProperty("http.proxyPort")) != null) + { + try + { + proxyPort = Integer.parseInt(port); + } + catch (Throwable t) + { + // Nothing. + } + } + } + + userAgent = System.getProperty("http.agent"); - userAgent = "gnu-classpath/" - + System.getProperty("gnu.classpath.version") - + " (" - + System.getProperty("gnu.classpath.vm.shortname") - + "/" - + System.getProperty("java.vm.version") - + ")"; + return null; + } + }); } /** -- cgit v1.1