summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-23 11:49:59 +0000
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-23 11:49:59 +0000
commit63c1657bf2b88278b3c0e629f91cf95a3804e18a (patch)
tree64aea4322a219bf57b033cdd9cbe3dd03d623c2c /libjava
parent374520f703d1ba4701d7974a586978edeb9cb8a0 (diff)
downloadgcc-63c1657bf2b88278b3c0e629f91cf95a3804e18a.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85078 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog11
-rw-r--r--libjava/gnu/java/net/protocol/http/Connection.java71
-rw-r--r--libjava/java/lang/System.java17
3 files changed, 66 insertions, 33 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index c237e7f01ea..e9dd6797d34 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,5 +1,16 @@
2004-07-23 Mark Wielaard <mark@klomp.org>
+ * 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.
+
+2004-07-23 Mark Wielaard <mark@klomp.org>
+
* gnu/java/net/DefaultContentHandlerFactory.java: New dummy
implementation.
diff --git a/libjava/gnu/java/net/protocol/http/Connection.java b/libjava/gnu/java/net/protocol/http/Connection.java
index 44239e1721a..728d14a7e6b 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;
+ }
+ });
}
/**
diff --git a/libjava/java/lang/System.java b/libjava/java/lang/System.java
index d7529871845..a8c0c23c0db 100644
--- a/libjava/java/lang/System.java
+++ b/libjava/java/lang/System.java
@@ -1,5 +1,6 @@
/* System.java -- useful methods to interface with the system
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+ Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -98,6 +99,20 @@ public final class System
defaultProperties.put("gnu.classpath.vm.shortname", value);
}
+ // Network properties
+ if (defaultProperties.get("http.agent") == null)
+ {
+ String userAgent
+ = ("gnu-classpath/"
+ + defaultProperties.getProperty("gnu.classpath.version")
+ + " ("
+ + defaultProperties.getProperty("gnu.classpath.vm.shortname")
+ + "/"
+ + defaultProperties.getProperty("java.vm.version")
+ + ")");
+ defaultProperties.put("http.agent", userAgent);
+ }
+
defaultProperties.put("gnu.cpu.endian",
isWordsBigEndian() ? "big" : "little");