diff options
author | Jorge Arellano Cid <jcid@dillo.org> | 2010-02-26 21:01:16 -0300 |
---|---|---|
committer | Jorge Arellano Cid <jcid@dillo.org> | 2010-02-26 21:01:16 -0300 |
commit | 6e71acc30c4dee1a1f71e16521b5a8c5a56363f2 (patch) | |
tree | 7e3114e88b7d1b0ae0ae1e0b0bc9eac367510a48 /src | |
parent | ae6386f8c9def1c247b99902d1315ceb5c20b31b (diff) | |
parent | 6697027a4968711877cb1dab08fc981ce4d1ffc0 (diff) |
merge
Diffstat (limited to 'src')
-rw-r--r-- | src/capi.c | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -219,14 +219,19 @@ int a_Capi_dpi_verify_request(BrowserWindow *bw, DilloUrl *url) DilloUrl *referer; int allow = FALSE; - /* test POST and GET */ - if (dStrcasecmp(URL_SCHEME(url), "dpi") == 0 && - URL_FLAGS(url) & (URL_Post + URL_Get)) { - /* only allow dpi requests from dpi-generated urls */ - if (a_Nav_stack_size(bw)) { - referer = a_History_get_url(NAV_TOP_UIDX(bw)); - if (dStrcasecmp(URL_SCHEME(referer), "dpi") == 0) { - allow = TRUE; + if (dStrcasecmp(URL_SCHEME(url), "dpi") == 0) { + if (!(URL_FLAGS(url) & (URL_Post + URL_Get))) { + allow = TRUE; + } else if (!(URL_FLAGS(url) & URL_Post) && + strncmp(URL_STR(url), "dpi:/vsource/", 13) == 0) { + allow = TRUE; + } else { + /* only allow GET&POST dpi-requests from dpi-generated urls */ + if (a_Nav_stack_size(bw)) { + referer = a_History_get_url(NAV_TOP_UIDX(bw)); + if (dStrcasecmp(URL_SCHEME(referer), "dpi") == 0) { + allow = TRUE; + } } } } else { |