{"host": "cp3074.esams.wmnet", "state": "core_diff", "description": "Differences to core resources", "diff": {"full": {"total": 3951, "only_in_self": [], "only_in_other": [], "resource_diffs": [{"resource": "File[/etc/varnish/upload-frontend.inc.vcl]", "content": "--- /etc/varnish/upload-frontend.inc.vcl.orig\n+++ /etc/varnish/upload-frontend.inc.vcl\n@@ -174,15 +174,16 @@\n                 return (synth(400, \"Bad Request\"));\n             }\n \n-          // Classify thumbnail size for rate limiting purposes.\n-          // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n-          // Since we already know this is a valid thumb URL, we only need to match the\n-          // size component from the last path segment.\n-          if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n-              var.set_int(\"glb_requests_limit\", 1000);\n-          } else {\n-              var.set_int(\"glb_requests_limit\", 500);\n-          }\n+            // Classify thumbnail size for rate limiting purposes.\n+            // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n+            // Since we already know this is a valid thumb URL, we only need to match the\n+            // size component from the last path segment.\n+            if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n+                var.set_int(\"glb_requests_limit\", 1000);\n+            } else {\n+                // Non-standard size is an invalid request, not a rate limit violation\n+                return (synth(400, \"Use thumbnail sizes listed on https://w.wiki/GHai\"));\n+            }\n \n             // Normalize end of thumbnail URL (redundant filename)\n             // Lowercase last part of the URL, to avoid case variations on extension or thumbnail parameters"}, {"resource": "File[/usr/share/varnish/tests/upload-frontend.inc.vcl]", "content": "--- /usr/share/varnish/tests/upload-frontend.inc.vcl.orig\n+++ /usr/share/varnish/tests/upload-frontend.inc.vcl\n@@ -174,15 +174,16 @@\n                 return (synth(400, \"Bad Request\"));\n             }\n \n-          // Classify thumbnail size for rate limiting purposes.\n-          // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n-          // Since we already know this is a valid thumb URL, we only need to match the\n-          // size component from the last path segment.\n-          if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n-              var.set_int(\"glb_requests_limit\", 1000);\n-          } else {\n-              var.set_int(\"glb_requests_limit\", 500);\n-          }\n+            // Classify thumbnail size for rate limiting purposes.\n+            // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n+            // Since we already know this is a valid thumb URL, we only need to match the\n+            // size component from the last path segment.\n+            if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n+                var.set_int(\"glb_requests_limit\", 1000);\n+            } else {\n+                // Non-standard size is an invalid request, not a rate limit violation\n+                return (synth(400, \"Use thumbnail sizes listed on https://w.wiki/GHai\"));\n+            }\n \n             // Normalize end of thumbnail URL (redundant filename)\n             // Lowercase last part of the URL, to avoid case variations on extension or thumbnail parameters"}], "perc_changed": "0.05%"}, "core": {"total": 3951, "only_in_self": [], "only_in_other": [], "resource_diffs": [{"resource": "File[/etc/varnish/upload-frontend.inc.vcl]", "content": "--- /etc/varnish/upload-frontend.inc.vcl.orig\n+++ /etc/varnish/upload-frontend.inc.vcl\n@@ -174,15 +174,16 @@\n                 return (synth(400, \"Bad Request\"));\n             }\n \n-          // Classify thumbnail size for rate limiting purposes.\n-          // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n-          // Since we already know this is a valid thumb URL, we only need to match the\n-          // size component from the last path segment.\n-          if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n-              var.set_int(\"glb_requests_limit\", 1000);\n-          } else {\n-              var.set_int(\"glb_requests_limit\", 500);\n-          }\n+            // Classify thumbnail size for rate limiting purposes.\n+            // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n+            // Since we already know this is a valid thumb URL, we only need to match the\n+            // size component from the last path segment.\n+            if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n+                var.set_int(\"glb_requests_limit\", 1000);\n+            } else {\n+                // Non-standard size is an invalid request, not a rate limit violation\n+                return (synth(400, \"Use thumbnail sizes listed on https://w.wiki/GHai\"));\n+            }\n \n             // Normalize end of thumbnail URL (redundant filename)\n             // Lowercase last part of the URL, to avoid case variations on extension or thumbnail parameters"}, {"resource": "File[/usr/share/varnish/tests/upload-frontend.inc.vcl]", "content": "--- /usr/share/varnish/tests/upload-frontend.inc.vcl.orig\n+++ /usr/share/varnish/tests/upload-frontend.inc.vcl\n@@ -174,15 +174,16 @@\n                 return (synth(400, \"Bad Request\"));\n             }\n \n-          // Classify thumbnail size for rate limiting purposes.\n-          // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n-          // Since we already know this is a valid thumb URL, we only need to match the\n-          // size component from the last path segment.\n-          if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n-              var.set_int(\"glb_requests_limit\", 1000);\n-          } else {\n-              var.set_int(\"glb_requests_limit\", 500);\n-          }\n+            // Classify thumbnail size for rate limiting purposes.\n+            // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n+            // Since we already know this is a valid thumb URL, we only need to match the\n+            // size component from the last path segment.\n+            if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n+                var.set_int(\"glb_requests_limit\", 1000);\n+            } else {\n+                // Non-standard size is an invalid request, not a rate limit violation\n+                return (synth(400, \"Use thumbnail sizes listed on https://w.wiki/GHai\"));\n+            }\n \n             // Normalize end of thumbnail URL (redundant filename)\n             // Lowercase last part of the URL, to avoid case variations on extension or thumbnail parameters"}], "perc_changed": "0.05%"}, "main": {"total": 3951, "only_in_self": [], "only_in_other": [], "resource_diffs": [{"resource": "File[/etc/varnish/upload-frontend.inc.vcl]", "content": "--- /etc/varnish/upload-frontend.inc.vcl.orig\n+++ /etc/varnish/upload-frontend.inc.vcl\n@@ -174,15 +174,16 @@\n                 return (synth(400, \"Bad Request\"));\n             }\n \n-          // Classify thumbnail size for rate limiting purposes.\n-          // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n-          // Since we already know this is a valid thumb URL, we only need to match the\n-          // size component from the last path segment.\n-          if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n-              var.set_int(\"glb_requests_limit\", 1000);\n-          } else {\n-              var.set_int(\"glb_requests_limit\", 500);\n-          }\n+            // Classify thumbnail size for rate limiting purposes.\n+            // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n+            // Since we already know this is a valid thumb URL, we only need to match the\n+            // size component from the last path segment.\n+            if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n+                var.set_int(\"glb_requests_limit\", 1000);\n+            } else {\n+                // Non-standard size is an invalid request, not a rate limit violation\n+                return (synth(400, \"Use thumbnail sizes listed on https://w.wiki/GHai\"));\n+            }\n \n             // Normalize end of thumbnail URL (redundant filename)\n             // Lowercase last part of the URL, to avoid case variations on extension or thumbnail parameters"}, {"resource": "File[/usr/share/varnish/tests/upload-frontend.inc.vcl]", "content": "--- /usr/share/varnish/tests/upload-frontend.inc.vcl.orig\n+++ /usr/share/varnish/tests/upload-frontend.inc.vcl\n@@ -174,15 +174,16 @@\n                 return (synth(400, \"Bad Request\"));\n             }\n \n-          // Classify thumbnail size for rate limiting purposes.\n-          // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n-          // Since we already know this is a valid thumb URL, we only need to match the\n-          // size component from the last path segment.\n-          if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n-              var.set_int(\"glb_requests_limit\", 1000);\n-          } else {\n-              var.set_int(\"glb_requests_limit\", 500);\n-          }\n+            // Classify thumbnail size for rate limiting purposes.\n+            // Standard sizes get a lenient rate limit, non-standard sizes get a stricter one.\n+            // Since we already know this is a valid thumb URL, we only need to match the\n+            // size component from the last path segment.\n+            if (req.url ~ \"/((?:qlow-)?(?:lossy-)?(?:lossless-)?(?:page\\d+-)?(?:lang[0-9a-zA-Z-]+-)?(?:20|40|60|120|250|330|500|960|1280|1920|3840)px-)[^/]+$\") {\n+                var.set_int(\"glb_requests_limit\", 1000);\n+            } else {\n+                // Non-standard size is an invalid request, not a rate limit violation\n+                return (synth(400, \"Use thumbnail sizes listed on https://w.wiki/GHai\"));\n+            }\n \n             // Normalize end of thumbnail URL (redundant filename)\n             // Lowercase last part of the URL, to avoid case variations on extension or thumbnail parameters"}], "perc_changed": "0.05%"}}}