summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRick Altherr <kc8apf@kc8apf.net>2018-11-08 09:31:28 -0800
committerRick Altherr <kc8apf@kc8apf.net>2018-11-09 11:41:29 -0800
commit58b60fccc12737a436ec6780dc1598467c8f5d2f (patch)
treeca737a4c8892e4284f5587944847723ca836706a
parentfa7aba70d8c1bc68cd2572d808c66059df6da989 (diff)
downloadlibgit2-58b60fccc12737a436ec6780dc1598467c8f5d2f.tar.gz
netops: add method to return default http port for a connection
Constant strings and logic for HTTP(S) default ports were starting to be spread throughout netops.c. Instead of duplicating this again to determine if a Host header should include the port, move the default port constants and logic into an internal method in netops.{c,h}.
-rw-r--r--src/netops.c15
-rw-r--r--src/netops.h2
2 files changed, 14 insertions, 3 deletions
diff --git a/src/netops.c b/src/netops.c
index efcc6c5a7..272d0ccd8 100644
--- a/src/netops.c
+++ b/src/netops.c
@@ -119,6 +119,15 @@ int gitno__match_host(const char *pattern, const char *host)
return -1;
}
+static const char *default_port_http = "80";
+static const char *default_port_https = "443";
+
+const char *gitno__default_port(
+ gitno_connection_data *data)
+{
+ return data->use_ssl ? default_port_https : default_port_http;
+}
+
static const char *prefix_http = "http://";
static const char *prefix_https = "https://";
@@ -141,7 +150,7 @@ int gitno_connection_data_from_url(
if (!git__prefixcmp(url, prefix_http)) {
path_search_start = url + strlen(prefix_http);
- default_port = "80";
+ default_port = default_port_http;
if (data->use_ssl) {
giterr_set(GITERR_NET, "redirect from HTTPS to HTTP is not allowed");
@@ -149,10 +158,10 @@ int gitno_connection_data_from_url(
}
} else if (!git__prefixcmp(url, prefix_https)) {
path_search_start = url + strlen(prefix_https);
- default_port = "443";
+ default_port = default_port_https;
data->use_ssl = true;
} else if (url[0] == '/')
- default_port = data->use_ssl ? "443" : "80";
+ default_port = gitno__default_port(data);
if (!default_port) {
giterr_set(GITERR_NET, "unrecognized URL prefix");
diff --git a/src/netops.h b/src/netops.h
index 75fd9a512..f376bd911 100644
--- a/src/netops.h
+++ b/src/netops.h
@@ -96,4 +96,6 @@ int gitno_extract_url_parts(
const char *url,
const char *default_port);
+const char *gitno__default_port(gitno_connection_data *data);
+
#endif