summaryrefslogtreecommitdiff
path: root/src/netops.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-09-21 21:11:02 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2016-04-19 13:54:19 +0200
commit4e01741390d1bed120a44456236ef70d9304380b (patch)
tree883e0d6e9ab7b95cd4a8328fe5984353107a791b /src/netops.c
parentb117721dd8aa039e074c6bd46b18a526ac9cb2f3 (diff)
downloadlibgit2-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.c22
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)) {