git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] http-push.c: DAV must support only http and https scheme

From
Kirill A. Korinskiy <catap@catap.ru>
Date
Apr 13, 2009, 17:00 UTC
Message-ID
<1239642037-20352-1-git-send-email-catap@catap.ru>
In-Reply-To
<1239626554-26206-1-git-send-email-catap@catap.ru>

If the response from remote web-server have scp or other not http-like scheme http-push can't go to change url, because DAV must work only over HTTP (http and https scheme).

Signed-off-by: Kirill A. Korinskiy <catap@catap.ru>
---
 http-push.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/http-push.c b/http-push.c
index 5138224..79c8201 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1486,16 +1486,23 @@ static void handle_remote_ls_ctx(struct xml_ctx *ctx, int tag_closed)
 			}
 		} else if (!strcmp(ctx->name, DAV_PROPFIND_NAME) && ctx->cdata) {
 			char *path = ctx->cdata;
-			if (*ctx->cdata == 'h') {
-				path = strstr(path, "//");
-				if (path) {
-					path = strchr(path+2, '/');
-				}
+
+			if (!strncasecmp(ctx->cdata, "http://", sizeof("http://") - 1)) {
+				path = strchr(path + sizeof("http://") - 1, '/');
+			} else if (!strncasecmp(ctx->cdata, "https://",
+						sizeof("https://") - 1)) {
+				path = strchr(path + sizeof("https://") - 1, '/');
+			} else if (strstr(path, "://")) {
+				path = NULL;
 			}
+
 			if (path) {
 				path += repo->path_len;
 				ls->dentry_name = xstrdup(path);
+			} else {
+				fprintf(stderr, "Not valid URI: %s\n", ctx->cdata);
 			}
+
 		} else if (!strcmp(ctx->name, DAV_PROPFIND_COLLECTION)) {
 			ls->dentry_flags |= IS_DIR;
 		}
-- 
1.6.2
Previous: Kirill A. Korinskiy
Message 2 of 2 in “http-push.c: DAV must support olny http and https scheme”
  1. http-push.c: DAV must support olny http and https schemeKirill A. Korinskiy, Apr 13, 2009
  2. http-push.c: DAV must support only http and https schemeKirill A. Korinskiy, Apr 13, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.