commit - 82ebf666930f3ea5b44663d1fede65ed22282361
commit + 09838ffc9388f0cdbc316deb5eaae54ec4841207
blob - d5f868ebd9f8c1243aa2a30ef8688b5bc3b97826
blob + 2aa285a3281b14706191512d7f095677ed3fa2ef
--- got/got.c
+++ got/got.c
static const struct got_error *
cmd_clone(int argc, char *argv[])
{
- char *uri, *branch_filter, *dirname;
+ const struct got_error *err = NULL;
+ const char *uri, *branch_filter, *dirname;
+ char *proto, *host, *port, *repo_name, *server_path;
int ch;
while ((ch = getopt(argc, argv, "b:")) != -1) {
dirname = argv[1];
else
usage_clone();
- return got_fetch(argv[0], branch_filter, dirname);
+
+ err = got_fetch_parse_uri(&proto, &host, &port, &server_path,
+ &repo_name, argv[0]);
+ if (err)
+ goto done;
+
+ err = got_fetch(proto, host, port, server_path, repo_name,
+ branch_filter, dirname);
+done:
+ free(proto);
+ free(host);
+ free(port);
+ free(server_path);
+ free(repo_name);
+ return err;
}
static const struct got_error *
blob - 33820f922ef8ee50b6236805c495361c960616a7
blob + 3af0abb9fe9bfa5b38d3eecfa6328ee6cbe3f661
--- include/got_fetch.h
+++ include/got_fetch.h
const struct got_error *got_fetch_parse_uri(char **, char **, char **,
char **, char **, const char *);
-const struct got_error* got_fetch(char *, char *, char *);
+const struct got_error *got_fetch(const char *, const char *,
+ const char *, const char *, const char *, const char *,
+ const char *);
blob - b4ee27f466629f5422a50913c157a5910cd95fd3
blob + ff271353f0679b85ebb06d45b1dbcbf0ef2500be
--- lib/fetch.c
+++ lib/fetch.c
}
static const struct got_error *
-dial_ssh(int *fetchfd, char *host, char *port, char *path, char *direction)
+dial_ssh(int *fetchfd, const char *host, const char *port, const char *path,
+ const char *direction)
{
const struct got_error *error = NULL;
int pid, pfd[2];
}
static const struct got_error *
-dial_git(int *fetchfd, char *host, char *port, char *path, char *direction)
+dial_git(int *fetchfd, const char *host, const char *port, const char *path,
+ const char *direction)
{
const struct got_error *err = NULL;
struct addrinfo hints, *servinfo, *p;
}
const struct got_error*
-got_fetch(char *uri, char *branch_filter, char *destdir)
+got_fetch(const char *proto, const char *host, const char *port,
+ const char *server_path, const char *repo_name,
+ const char *branch_filter, const char *destdir)
{
- char *proto, *host, *port, *repo_name, *server_path;
int imsg_fetchfds[2], imsg_idxfds[2], fetchfd = -1;
int packfd = -1, npackfd = -1, idxfd = -1, nidxfd = -1;
int status, done = 0;
TAILQ_INIT(&symrefs);
fetchfd = -1;
- err = got_fetch_parse_uri(&proto, &host, &port, &server_path,
- &repo_name, uri);
- if (err)
- return err;
if (destdir == NULL) {
if (asprintf(&default_destdir, "%s.git", repo_name) == -1)
return got_error_from_errno("asprintf");