2002/css-validator/org/w3c/css/util ApplContext.java,1.23,1.24 HTTPURL.java,1.24,1.25

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