- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 03 Nov 2011 16:00:42 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/util
In directory hutz:/tmp/cvs-serv21605/org/w3c/css/util
Modified Files:
ApplContext.java HTTPURL.java
Log Message:
Recast of Ville Skyttä patch to add Referer, Fixes http://www.w3.org/Bugs/Public/show_bug.cgi?id=14634
Index: ApplContext.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/util/ApplContext.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- ApplContext.java 29 Sep 2011 09:08:59 -0000 1.23
+++ ApplContext.java 3 Nov 2011 16:00:39 -0000 1.24
@@ -73,6 +73,8 @@
String faketext = null;
URL fakeurl = null;
+ URL referrer = null;
+
/**
* Creates a new ApplContext
*/
@@ -489,4 +491,20 @@
}
return nsdefs.containsKey(prefix);
}
+
+ /**
+ * Set the current referrer for possible linked style sheets
+ * @param referrer the referring URL
+ */
+ public void setReferrer(URL referrer) {
+ this.referrer = referrer;
+ }
+
+ /**
+ * get the referrer URL (or null if not relevant)
+ * @return an URL
+ */
+ public URL getReferrer() {
+ return referrer;
+ }
}
Index: HTTPURL.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/util/HTTPURL.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- HTTPURL.java 23 Aug 2011 09:23:50 -0000 1.24
+++ HTTPURL.java 3 Nov 2011 16:00:39 -0000 1.25
@@ -153,7 +153,7 @@
private static URLConnection getConnection(URL url, int count)
throws IOException {
- return getConnection(url, count, null);
+ return getConnection(url, null, count, null);
}
@@ -191,13 +191,15 @@
uConn.setHostnameVerifier(hv);
}
- private static URLConnection getConnection(URL url, int count,
+ private static URLConnection getConnection(URL url, URL referrer, int count,
ApplContext ac)
throws IOException {
if (count > 5) {
throw new ProtocolException("Server redirected too many " +
"times (5)");
}
+ // add the referrer, if not the same as the target URL
+ URL ref = (url.equals(referrer) ? null : referrer);
if (Util.servlet) {
String protocol = url.getProtocol();
@@ -223,6 +225,10 @@
// for the fun
urlC.setRequestProperty("User-Agent",
"Jigsaw/2.2.5 W3C_CSS_Validator_JFouffa/2.0");
+ // referrer
+ if (ref != null) {
+ urlC.setRequestProperty("Referer", ref.toExternalForm());
+ }
// relay authorization information
if (ac.getCredential() != null) {
urlC.setRequestProperty("Authorization", ac.getCredential());
@@ -268,7 +274,7 @@
case 307:
try {
URL u = getURL(httpURL.getHeaderField("Location"));
- return getConnection(u, count + 1, ac);
+ return getConnection(u, ref, count + 1, ac);
} finally {
httpURL.disconnect();
}
@@ -304,7 +310,7 @@
public static URLConnection getConnection(URL url, ApplContext ac)
throws IOException {
- return getConnection(url, 0, ac);
+ return getConnection(url, ac.getReferrer(), 0, ac);
}
/* more madness */
Received on Thursday, 3 November 2011 16:00:54 UTC