Commit fd6790210f646a61c750058261d29f6a68485e67

Carlos Martín Nieto 2011-06-16T02:17:49

Move git_pkt_{gen_proto,send_request} to transport_git.c This is where they really belong. Remvoe the prefix and make them static. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>

diff --git a/include/git2/pkt.h b/include/git2/pkt.h
index bcd5c81..59826da 100644
--- a/include/git2/pkt.h
+++ b/include/git2/pkt.h
@@ -51,10 +51,5 @@ struct git_pkt_ref {
 	char *capabilities;
 };
 
-/**
- * Create a git protocol request.
- */
-int git_pkt_gen_proto(char **out, int *outlen, const char *cmd, const char *url);
-int git_pkt_send_request(int socket, const char *cmd, const char *url);
 int git_pkt_parse_line(git_pkt **head, const char *line, const char **out, size_t len);
 void git_pkt_free(git_pkt *pkt);
diff --git a/src/pkt.c b/src/pkt.c
index 403850b..eb51fe9 100644
--- a/src/pkt.c
+++ b/src/pkt.c
@@ -201,64 +201,6 @@ void git_pkt_free(git_pkt *pkt)
 	free(pkt);
 }
 
-/*
- * Create a git procol request.
- *
- * For example: 0035git-upload-pack /libgit2/libgit2\0host=github.com\0
- *
- * TODO: the command should not be hard-coded
- */
-int git_pkt_gen_proto(char **out, int *outlen, const char *cmd, const char *url)
-{
-	char *delim, *repo, *ptr;
-	char default_command[] = "git-upload-pack";
-	char host[] = "host=";
-	int len;
-
-	delim = strchr(url, '/');
-	if (delim == NULL)
-		return git__throw(GIT_EOBJCORRUPTED, "Failed to create proto-request: malformed URL");
-
-	repo = delim;
-
-	delim = strchr(url, ':');
-	if (delim == NULL)
-		delim = strchr(url, '/');
-
-	if (cmd == NULL)
-		cmd = default_command;
-
-	len = 4 + strlen(cmd) + 1 + strlen(repo) + 1 + STRLEN(host) + (delim - url) + 2;
-
-	*out = git__malloc(len);
-	if (*out == NULL)
-		return GIT_ENOMEM;
-
-	*outlen = len - 1;
-	ptr = *out;
-	memset(ptr, 0x0, len);
-	/* We expect the return value to be > len - 1 so don't bother checking it */
-	snprintf(ptr, len -1, "%04x%s %s%c%s%s", len - 1, cmd, repo, 0, host, url);
-
-	return GIT_SUCCESS;
-}
-
-int git_pkt_send_request(int s, const char *cmd, const char *url)
-{
-	int error, len;
-	char *msg = NULL;
-
-	error = git_pkt_gen_proto(&msg, &len, cmd, url);
-	if (error < GIT_SUCCESS)
-		goto cleanup;
-
-	error = gitno_send(s, msg, len, 0);
-
-cleanup:
-	free(msg);
-	return error;
-}
-
 int git_pkt_send_flush(int s)
 {
 	char flush[] = "0000";
diff --git a/src/transport_git.c b/src/transport_git.c
index 2441edf..eb5f708 100644
--- a/src/transport_git.c
+++ b/src/transport_git.c
@@ -49,6 +49,61 @@ typedef struct {
 	git_vector refs;
 	git_remote_head **heads;
 } git_priv;
+/*
+ * Create a git procol request.
+ *
+ * For example: 0035git-upload-pack /libgit2/libgit2\0host=github.com\0
+ */
+static int gen_proto(char **out, int *outlen, const char *cmd, const char *url)
+{
+	char *delim, *repo, *ptr;
+	char default_command[] = "git-upload-pack";
+	char host[] = "host=";
+	int len;
+
+	delim = strchr(url, '/');
+	if (delim == NULL)
+		return git__throw(GIT_EOBJCORRUPTED, "Failed to create proto-request: malformed URL");
+
+	repo = delim;
+
+	delim = strchr(url, ':');
+	if (delim == NULL)
+		delim = strchr(url, '/');
+
+	if (cmd == NULL)
+		cmd = default_command;
+
+	len = 4 + strlen(cmd) + 1 + strlen(repo) + 1 + STRLEN(host) + (delim - url) + 2;
+
+	*out = git__malloc(len);
+	if (*out == NULL)
+		return GIT_ENOMEM;
+
+	*outlen = len - 1;
+	ptr = *out;
+	memset(ptr, 0x0, len);
+	/* We expect the return value to be > len - 1 so don't bother checking it */
+	snprintf(ptr, len -1, "%04x%s %s%c%s%s", len - 1, cmd, repo, 0, host, url);
+
+	return GIT_SUCCESS;
+}
+
+static int send_request(int s, const char *cmd, const char *url)
+{
+	int error, len;
+	char *msg = NULL;
+
+	error = gen_proto(&msg, &len, cmd, url);
+	if (error < GIT_SUCCESS)
+		goto cleanup;
+
+	error = gitno_send(s, msg, len, 0);
+
+cleanup:
+	free(msg);
+	return error;
+}
 
 /* The URL should already have been stripped of the protocol */
 static int extract_host_and_port(char **host, char **port, const char *url)
@@ -99,7 +154,7 @@ static int do_connect(git_priv *priv, const char *url)
 	error = extract_host_and_port(&host, &port, url);
 	s = gitno_connect(host, port);
 	connected = 1;
-	error = git_pkt_send_request(s, NULL, url);
+	error = send_request(s, NULL, url);
 	priv->socket = s;
 
 	free(host);