diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2015-09-21 21:11:02 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2016-04-19 13:54:19 +0200 |
commit | 4e01741390d1bed120a44456236ef70d9304380b (patch) | |
tree | 883e0d6e9ab7b95cd4a8328fe5984353107a791b /src/netops.c | |
parent | b117721dd8aa039e074c6bd46b18a526ac9cb2f3 (diff) | |
download | libgit2-4e01741390d1bed120a44456236ef70d9304380b.tar.gz |
netops: make the path optional in URLs
When we're dealing with proxy addresses, we only want a hostname and
port, and the user would not provide a path, so make it optional so we
can use this same function to parse git as well as proxy URLs.
Diffstat (limited to 'src/netops.c')
-rw-r--r-- | src/netops.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/netops.c b/src/netops.c index c4241989f..90326ea59 100644 --- a/src/netops.c +++ b/src/netops.c @@ -257,16 +257,18 @@ int gitno_extract_url_parts( *port = git__strdup(default_port); GITERR_CHECK_ALLOC(*port); - if (u.field_set & (1 << UF_PATH)) { - *path = git__substrdup(_path, u.field_data[UF_PATH].len); - GITERR_CHECK_ALLOC(*path); - } else { - git__free(*port); - *port = NULL; - git__free(*host); - *host = NULL; - giterr_set(GITERR_NET, "invalid url, missing path"); - return GIT_EINVALIDSPEC; + if (path) { + if (u.field_set & (1 << UF_PATH)) { + *path = git__substrdup(_path, u.field_data[UF_PATH].len); + GITERR_CHECK_ALLOC(*path); + } else { + git__free(*port); + *port = NULL; + git__free(*host); + *host = NULL; + giterr_set(GITERR_NET, "invalid url, missing path"); + return GIT_EINVALIDSPEC; + } } if (u.field_set & (1 << UF_USERINFO)) { |