git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] http-push.c: DAV must support olny http and https scheme
@ 2009-04-10 13:44 Kirill A. Korinskiy
  2009-04-12  8:48 ` Junio C Hamano
  0 siblings, 1 reply; 8+ messages in thread
From: Kirill A. Korinskiy @ 2009-04-10 13:44 UTC (permalink / raw)
  To: gitster, git; +Cc: Kirill A. Korinskiy

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 |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/http-push.c b/http-push.c
index feeb340..48c9a04 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1457,16 +1457,17 @@ 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 (path) {
-				path += repo->path_len;
-				ls->dentry_name = xstrdup(path);
+			if (!strcmp(ctx->cdata, "http://")) {
+				path = strchr(path + sizeof("http://") - 1, '/');
+			} else if (!strcmp(ctx->cdata, "https://")) {
+				path = strchr(path + sizeof("https://") - 1, '/');
 			}
+
+			path += remote->path_len;
+
+			ls->dentry_name = xmalloc(strlen(path) -
+						  remote->path_len + 1);
+			strcpy(ls->dentry_name, path + remote->path_len);
 		} else if (!strcmp(ctx->name, DAV_PROPFIND_COLLECTION)) {
 			ls->dentry_flags |= IS_DIR;
 		}
-- 
1.6.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread
* [PATCH] http-push.c: DAV must support olny http and https scheme
@ 2009-04-13 12:42 Kirill A. Korinskiy
  0 siblings, 0 replies; 8+ messages in thread
From: Kirill A. Korinskiy @ 2009-04-13 12:42 UTC (permalink / raw)
  To: gitster; +Cc: git, Kirill A. Korinskiy

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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-04-13 16:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-10 13:44 [PATCH] http-push.c: DAV must support olny http and https scheme Kirill A. Korinskiy
2009-04-12  8:48 ` Junio C Hamano
2009-04-12  9:00   ` Mike Hommey
2009-04-12 18:45     ` Junio C Hamano
2009-04-12 18:49   ` Kirill A. Korinskiy
2009-04-12 19:33     ` Junio C Hamano
2009-04-13 16:44     ` Matthieu Moy
  -- strict thread matches above, loose matches on Subject: below --
2009-04-13 12:42 Kirill A. Korinskiy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).