+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
/* 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.
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;
* 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;
+ }
+ });
}
/**
/* 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.
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");