summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcorvid <corvid@lavabit.com>2011-11-17 02:30:58 +0000
committercorvid <corvid@lavabit.com>2011-11-17 02:30:58 +0000
commit0737f8cda8761178997948a163ee10cebe3f2ce1 (patch)
tree8b3a08816c14737e192b209954cd7963cd6ae9ef
parente4073e88c1edb556eb2b3fb06cec0639c3a3d80c (diff)
never treat URI schemes case-sensitively
-rw-r--r--dpi/bookmarks.c21
-rw-r--r--dpi/file.c5
-rw-r--r--dpi/vsource.c3
-rw-r--r--src/capi.c2
-rw-r--r--src/dillo.cc3
-rw-r--r--src/menu.cc3
-rw-r--r--src/nav.c3
7 files changed, 23 insertions, 17 deletions
diff --git a/dpi/bookmarks.c b/dpi/bookmarks.c
index 6932d2f0..32dc424f 100644
--- a/dpi/bookmarks.c
+++ b/dpi/bookmarks.c
@@ -1626,16 +1626,17 @@ static int Bmsrv_parse_token(Dsh *sh, char *Buf)
dFree(cmd);
url = a_Dpip_get_attr_l(Buf, BufSize, "url");
- if (strcmp(url, "dpi:/bm/modify") == 0) {
- st = Bmsrv_send_modify_answer(sh, url);
- dFree(url);
- return st;
-
- } else if (strncmp(url, "dpi:/bm/modify?", 15) == 0) {
- /* process request */
- st = Bmsrv_process_modify_request(sh, url);
- dFree(url);
- return st;
+ if (dStrnAsciiCasecmp(url, "dpi:", 4) == 0) {
+ if (strcmp(url+4, "/bm/modify") == 0) {
+ st = Bmsrv_send_modify_answer(sh, url);
+ dFree(url);
+ return st;
+ } else if (strncmp(url+4, "/bm/modify?", 11) == 0) {
+ /* process request */
+ st = Bmsrv_process_modify_request(sh, url);
+ dFree(url);
+ return st;
+ }
}
diff --git a/dpi/file.c b/dpi/file.c
index 9e33cae2..5f1459ad 100644
--- a/dpi/file.c
+++ b/dpi/file.c
@@ -800,7 +800,7 @@ static char *File_normalize_path(const char *orig)
dReturn_val_if (orig == NULL, ret);
/* Make sure the string starts with "file:/" */
- if (strncmp(str, "file:/", 5) != 0)
+ if (dStrnAsciiCasecmp(str, "file:/", 5) != 0)
return ret;
str += 5;
@@ -942,7 +942,8 @@ static void File_serve_client(void *data, int f_write)
DPIBYE = 1;
MSG("(pid %d): Got DpiBye.\n", (int)getpid());
client->flags |= FILE_DONE;
- } else if (url && strcmp(url, "dpi:/file/toggle") == 0) {
+ } else if (url && dStrnAsciiCasecmp(url, "dpi:", 4) == 0 &&
+ strcmp(url+4, "/file/toggle") == 0) {
File_toggle_html_style(client);
} else if (path) {
File_get(client, path, url);
diff --git a/dpi/vsource.c b/dpi/vsource.c
index 113aaa99..adf08a83 100644
--- a/dpi/vsource.c
+++ b/dpi/vsource.c
@@ -101,7 +101,8 @@ void send_html_text(Dsh *sh, const char *url, int data_size)
int bytes_read = 0, old_line = 0, line = 1;
char *p, *q, *src_str, line_str[128];
- if (strncmp(url, "dpi:/vsource/:", 14) == 0)
+ if (dStrnAsciiCasecmp(url, "dpi:", 4) == 0 &&
+ strncmp(url+4, "/vsource/:", 10) == 0)
url += 14;
/* Send HTTP header for plain text MIME type */
diff --git a/src/capi.c b/src/capi.c
index 281eb6f3..6db7484c 100644
--- a/src/capi.c
+++ b/src/capi.c
@@ -233,7 +233,7 @@ int a_Capi_dpi_verify_request(BrowserWindow *bw, DilloUrl *url)
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) {
+ strncmp(URL_PATH(url), "/vsource/", 9) == 0) {
allow = TRUE;
} else {
/* only allow GET&POST dpi-requests from dpi-generated urls */
diff --git a/src/dillo.cc b/src/dillo.cc
index b05cb16a..ff450fe5 100644
--- a/src/dillo.cc
+++ b/src/dillo.cc
@@ -410,7 +410,8 @@ int main(int argc, char **argv)
if (idx == argc) {
/* No URLs/files on cmdline. Send startup screen */
- if (strcmp(URL_STR(prefs.start_page), "about:blank") == 0)
+ if (dStrAsciiCasecmp(URL_SCHEME(prefs.start_page), "about") == 0 &&
+ strcmp(URL_PATH(prefs.start_page), "blank") == 0)
a_UIcmd_open_url(bw, NULL);
else
a_UIcmd_open_url(bw, prefs.start_page);
diff --git a/src/menu.cc b/src/menu.cc
index 3aa30faa..fe8ff139 100644
--- a/src/menu.cc
+++ b/src/menu.cc
@@ -327,7 +327,8 @@ void a_Menu_page_popup(BrowserWindow *bw, const DilloUrl *url,
has_bugs == TRUE ? pm[1].activate() : pm[1].deactivate();
- if (strncmp(URL_STR(url), "dpi:/vsource/", 13) == 0)
+ if (dStrAsciiCasecmp(URL_SCHEME(url), "dpi") == 0 &&
+ strncmp(URL_PATH(url), "/vsource/", 9) == 0)
pm[0].deactivate();
else
pm[0].activate();
diff --git a/src/nav.c b/src/nav.c
index cb4b071f..7a567710 100644
--- a/src/nav.c
+++ b/src/nav.c
@@ -481,7 +481,8 @@ static void Nav_reload_callback(void *data)
a_Nav_cancel_expect(bw);
if (a_Nav_stack_size(bw)) {
h_url = a_History_get_url(NAV_TOP_UIDX(bw));
- if (strncmp(URL_STR(h_url), "dpi:/vsource/", 13) == 0) {
+ if (dStrAsciiCasecmp(URL_SCHEME(h_url), "dpi") == 0 &&
+ strncmp(URL_PATH(h_url), "/vsource/", 9) == 0) {
/* allow reload for view source dpi */
confirmed = 1;
} else if (URL_FLAGS(h_url) & URL_Post) {