Commit f89dc917 by Edward Thomson

url: introduce `git_net_url_dup`

parent 9e98e443
...@@ -35,6 +35,46 @@ static const char *default_port_for_scheme(const char *scheme) ...@@ -35,6 +35,46 @@ static const char *default_port_for_scheme(const char *scheme)
return NULL; return NULL;
} }
int git_net_url_dup(git_net_url *out, git_net_url *in)
{
if (in->scheme) {
out->scheme = git__strdup(in->scheme);
GIT_ERROR_CHECK_ALLOC(out->scheme);
}
if (in->host) {
out->host = git__strdup(in->host);
GIT_ERROR_CHECK_ALLOC(out->host);
}
if (in->port) {
out->port = git__strdup(in->port);
GIT_ERROR_CHECK_ALLOC(out->port);
}
if (in->path) {
out->path = git__strdup(in->path);
GIT_ERROR_CHECK_ALLOC(out->path);
}
if (in->query) {
out->query = git__strdup(in->query);
GIT_ERROR_CHECK_ALLOC(out->query);
}
if (in->username) {
out->username = git__strdup(in->username);
GIT_ERROR_CHECK_ALLOC(out->username);
}
if (in->password) {
out->password = git__strdup(in->password);
GIT_ERROR_CHECK_ALLOC(out->password);
}
return 0;
}
int git_net_url_parse(git_net_url *url, const char *given) int git_net_url_parse(git_net_url *url, const char *given)
{ {
struct http_parser_url u = {0}; struct http_parser_url u = {0};
......
...@@ -21,6 +21,9 @@ typedef struct git_net_url { ...@@ -21,6 +21,9 @@ typedef struct git_net_url {
#define GIT_NET_URL_INIT { NULL } #define GIT_NET_URL_INIT { NULL }
/** Duplicate a URL */
extern int git_net_url_dup(git_net_url *out, git_net_url *in);
/** Parses a string containing a URL into a structure. */ /** Parses a string containing a URL into a structure. */
extern int git_net_url_parse(git_net_url *url, const char *str); extern int git_net_url_parse(git_net_url *url, const char *str);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment