wip - surf-adblock - Surf adblock web extension
 (HTM) git clone git://git.codemadness.org/surf-adblock
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 4bdd720660034ff1d771b209dba2097b10dc4d65
 (DIR) parent 182fbfa07b91c9d882ce592414e230e7a7c57c23
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sun,  4 Jun 2017 14:58:31 +0200
       
       wip
       
       Diffstat:
         M TODO                                |       1 +
         M adblock.c                           |      16 ++++++++++------
         M tests/run.sh                        |       4 +++-
         M tests/tests.c                       |      25 ++++++++++++++++++-------
       
       4 files changed, 32 insertions(+), 14 deletions(-)
       ---
 (DIR) diff --git a/TODO b/TODO
       @@ -1,6 +1,7 @@
        - optimize towupper for fnmatch? check < 128, see musl optimization.
        
        - fix blocking of : ||ads.somesite.com^
       +  matchbegin and matchend rules are wrong.
        
        - fix tweakers.net popup / rule.
                this is in an exception rule...
 (DIR) diff --git a/adblock.c b/adblock.c
       @@ -776,10 +776,11 @@ getdocumentcss(const char *uri)
                if (!uri)
                        return NULL;
        
       -        if (!(s = strstr(uri, "://")))
       -                return NULL;
       -        s += sizeof("://") - 1;
       -        len = strcspn(s, "/");
       +        if ((s = strstr(uri, "://")))
       +                s += sizeof("://") - 1;
       +        else
       +                s = uri;
       +        len = strcspn(s, "/"); /* TODO: ":/" */
                memcpy(domain, s, len);
                domain[len] = '\0';
        
       @@ -848,8 +849,11 @@ checkrequest(const char *uri, const char *requri)
                if (!uri || !strcmp(requri, uri))
                        return 1;
        
       -        s = strstr(uri, "://") + sizeof("://") - 1;
       -        len = strcspn(s, "/");
       +        if ((s = strstr(uri, "://")))
       +                s += sizeof("://") - 1;
       +        else
       +                s = uri;
       +        len = strcspn(s, "/"); /* TODO: ":/" */
                memcpy(domain, s, len);
                domain[len] = '\0';
        
 (DIR) diff --git a/tests/run.sh b/tests/run.sh
       @@ -1,4 +1,6 @@
        #!/bin/sh
        rm -f *.o tests
       -cc tests.c -o tests -Wall
       +#cc tests.c -o tests -Wall -ggdb -O0
       +#cc tests.c -o tests -Wall -ggdb -Os
       +cc tests.c -o tests -O2 -Wall
        SURF_ADBLOCK_FILE=`pwd`/rules ./tests
 (DIR) diff --git a/tests/tests.c b/tests/tests.c
       @@ -7,27 +7,38 @@ main(void)
        
                init();
        
       -        status = checkrequest("https://tweakers.net/", "/adtracker/a");
       +        status = checkrequest("https://tweakers.net/", "https://tweakers.net/adtracker/a");
                printf("%d\n", status);
        
       -        status = checkrequest("https://tweakers.net/", "/adtracker.");
       +        status = checkrequest("http://tweakers.net/", "http://tweakers.net/adtracker/a");
                printf("%d\n", status);
        
       -        status = checkrequest("https://tweakers.net/", "/index.html");
       +        status = checkrequest("https://tweakers.net/", "https://tweakers.net/adtracker.");
                printf("%d\n", status);
        
       -        status = checkrequest("https://360ads.com/", "/index.html");
       +        status = checkrequest("https://tweakers.net/", "https://tweakers.net/index.html");
                printf("%d\n", status);
        
       -        status = checkrequest("https://www.360ads.com/", "/index.html");
       +        status = checkrequest("https://360ads.com/", "https://360ads.com/index.html");
                printf("%d\n", status);
        
       -        status = checkrequest("https://360ads.com:8000/", "/index.html");
       +        status = checkrequest("https://www.360ads.com/", "https://www.360ads.com/index.html");
                printf("%d\n", status);
        
       -        status = checkrequest("https://www.360ads.com:8000/", "/index.html");
       +        status = checkrequest("http://www.360ads.com/", "http://360ads.com/index.html");
                printf("%d\n", status);
        
       +        status = checkrequest("https://360ads.com:8000/", "https://360ads.com/index.html");
       +        printf("%d\n", status);
       +
       +        status = checkrequest("https://360ads.com/", "https://360ads.com:8000/index.html");
       +        printf("%d\n", status);
       +
       +        status = checkrequest("https://360ads.com:8000/", "https://360ads.com:8000/index.html");
       +        printf("%d\n", status);
       +
       +        /*http://statics.360ads.com/statics/images/2016/home/t3.png*/
       +
                cleanup();
        
                return 0;