Commit Graph

52 Commits (4708e7fc8cb69c39c8559a1d8fb321b3e404d899)

Author SHA1 Message Date
vi 4708e7fc8c Avoid the regular expression engine in parsing rule targets.
I read in the bible (https://www.eff.org/https-everywhere/rulesets) that:

"""
To cover all of a domain's subdomains, you may want to specify a
wildcard target like *.twitter.com. Specifying this type of left-side
wildcard matches any host name with .twitter.com as a suffix, e.g.
www.twitter.com or urls.api.twitter.com. You can also specify a
right-side wildcard like www.google.*. Right-side wildcards, unlike
left-side wildcards, apply only one level deep. So if you want to
cover all countries you'll generally need to specify www.google.*,
www.google.co.*, and www.google.com.* to cover domains like
www.google.co.uk or www.google.com.au.
"""

The previous interpretation is both incorrect (because right wildcards
only apply one level deep) and potentially expensive (regular
expression matching is exponential in the worst-case.)
2017-12-05 20:54:40 +01:00
vi bb8b765ba0 Fast-forward upstream ruleset. 2017-12-05 17:38:39 +01:00
vi 44b6f2dcb4 Dependency upgrades; lts-8.24.
While we're here, ensure Cabal doesn't expect executable-exclusive
dependencies when the build-examples flag is set to false.
2017-12-05 17:23:37 +01:00
vi 9fcf5bc289 Refactored ICU extras. 2015-11-08 17:16:05 +08:00
vi 81ec883617 List the library as a dependency of the test suite, so Stack rebuilds tests without "build". 2015-11-08 17:14:01 +08:00
vi 783d59a20f % rm default.nix
I don't use it, and it's probably outdated given all the haskell-ng
work.
2015-11-08 00:56:45 +08:00
vi c26afe01cf Don't admit package-wise parameterisation of rulesets.
As 'a6f28e07a1edc8f62f3dfaf7965b3a818c2f4a7f' showed, there may be
breaking changes in the structure of rulesets between releases. I
don't intend to verify that every pair in the product works (is there
reason to be interested in any other than the latest?), so let's not
acommodate any more than one.
2015-11-08 00:53:35 +08:00
vi 1b46c03817 Added an example program; a HTTP proxy server redirecting to HTTPS when possible. 2015-11-07 18:14:19 +08:00
vi a6f28e07a1 We aren't ready for 5.1.1.
This reverts commit 2f0267e594.
2015-11-05 21:04:26 +08:00
vi 78f6c6c7eb Data.Text.{head,last} aren't total. 2015-11-05 21:01:19 +08:00
vi 9d156f17b0 Stack, AMP. 2015-11-04 23:15:07 +08:00
vi af2a14d7b3 Merge 'https-everywhere-rules-raw' into 'https-everywhere-rules'. 2015-11-04 21:59:02 +08:00
vi d165393745 Prepare to be assimilated by https-everywhere-rules. 2015-11-04 21:58:27 +08:00
vi e3c171b67e Prepare to assimilate https-everywhere-rules-raw. 2015-11-04 21:57:59 +08:00
vi 2f0267e594 Rules for 5.1.1 2015-08-27 22:22:27 +08:00
vi 74fc12d79f Weaken "base" bounds to >= 4.6 2015-08-27 22:21:18 +08:00
Jayesh Kumar Gupta c50f8496d3 Wrong url for https-everywhere-rules-raw?
I think.
2015-01-09 02:51:45 +05:30
vi 98ff6f9cda Nix: correctly propagate alternative package sets. 2014-12-28 10:12:25 +00:00
vi 16959f6ca0 Bumped dependencies, added a Nix derivation. 2014-12-25 19:54:56 +00:00
vi c90400b0d3 Added Nix derivation, relaxed "text" dependency. 2014-12-25 19:17:29 +00:00
vi 65051bd4b1 README nitpicks. 2014-08-25 01:48:04 +08:00
vi 412ca9fa16 Bump minor version, for recent interface change. 2014-08-25 01:26:44 +08:00
vi d08dc13352 Less artificial cookie example. 2014-08-25 00:18:08 +08:00
vi 6d12745fc9 Interface change for consistency: rewriteURL is idempotent on addresses with no matching rules. 2014-08-24 23:57:55 +08:00
vi 663f9b61dc Build dependencies: permit text-icu 0.8. 2014-08-24 23:52:28 +08:00
vi dddff3484e Don't build with -Werror. 2014-08-24 14:15:44 +08:00
vi 16633fd8b2 Cabal file was egregiously misnamed. 2014-08-24 14:15:08 +08:00
vi 7444a216e7 README: reference https-everywhere-rules-raw. 2014-08-24 14:06:22 +08:00
vi d75478773f Added cookie example to README. 2014-08-24 14:00:41 +08:00
vi 19a9a6b40d Fixed Cookie parser -- fields and predicates were mismatched. 2014-08-24 14:00:27 +08:00
vi eb144cc4dc The start of a README. 2014-08-24 12:57:50 +08:00
vi 5af781291f Correct pipeline semantics. 2014-08-24 12:57:35 +08:00
vi c6c5eae311 Simplified adornSuffix; no "Maybe" indirection. 2014-08-24 01:30:40 +08:00
vi 42bc20ae07 Safe implementation of adornSuffix. 2014-08-23 19:01:14 +08:00
vi 427a2516b3 Isolated tests for predicates defined in the top-level Internal module. 2014-08-23 19:00:48 +08:00
vi 9bf2a9194c Fixed exclusion matching. 2014-08-17 08:39:56 +08:00
vi 2732605a61 Permit latest Hspec. 2014-08-17 07:44:46 +08:00
vi 85605fcbab Fixed target parser. 2014-08-11 05:42:03 +08:00
vi 8ec3419492 Failing tests for parseRuleSets. 2014-08-11 05:32:06 +08:00
vi 49be7aa1a0 Use more structured URI representation; targets match only hosts.
This resolves #2.
2014-08-11 03:32:51 +08:00
vi 2a409bfdc7 Sorted build-depends. 2014-08-11 02:14:00 +08:00
vi 444b5ea51d Don't strip the text surrounding a match when performing find and replace.
Meta:
  Cross-Reference: #2
2014-08-11 02:09:02 +08:00
vi 809cca61b7 A unit test for the target parser. 2014-08-11 00:38:16 +08:00
vi d86284f09e Unit tests for Data.Text.ICU.Extras. 2014-08-11 00:12:36 +08:00
vi 2c0a18a6f0 Simplified replacement parsing for less redundancy. 2014-08-10 23:35:12 +08:00
vi 85a367ec94 No restriction on rules-raw dependency; list ICU extras in other-modules. 2014-08-10 07:26:21 +08:00
vi 5060883c5a Broken domain logic. 2014-08-10 07:16:57 +08:00
vi e154ef7404 Escape "." characters in target; this resolves #1. 2014-08-10 04:47:52 +08:00
vi f78421e09f Incomplete parser for HTTPS Everywhere rulesets. 2014-08-10 04:23:41 +08:00
vi af144593e9 Rename: https-everywhere-rules-base -> https-everywhere-rules-raw. 2014-08-10 02:50:17 +08:00