]>
git.proxmox.com Git - libgit2.git/blob - src/net.h
2 * Copyright (C) the libgit2 contributors. All rights reserved.
4 * This file is part of libgit2, distributed under the GNU GPL v2 with
5 * a Linking Exception. For full terms see the included COPYING file.
7 #ifndef INCLUDE_net_h__
8 #define INCLUDE_net_h__
12 typedef struct git_net_url
{
22 #define GIT_NET_URL_INIT { NULL }
24 /** Is a given string a url? */
25 extern bool git_net_str_is_url(const char *str
);
27 /** Duplicate a URL */
28 extern int git_net_url_dup(git_net_url
*out
, git_net_url
*in
);
30 /** Parses a string containing a URL into a structure. */
31 extern int git_net_url_parse(git_net_url
*url
, const char *str
);
33 /** Parses a string containing an SCP style path into a URL structure. */
34 extern int git_net_url_parse_scp(git_net_url
*url
, const char *str
);
36 /** Appends a path and/or query string to the given URL */
37 extern int git_net_url_joinpath(
42 /** Ensures that a URL is minimally valid (contains a host, port and path) */
43 extern bool git_net_url_valid(git_net_url
*url
);
45 /** Returns true if the URL is on the default port. */
46 extern bool git_net_url_is_default_port(git_net_url
*url
);
48 /** Returns true if the host portion of the URL is an ipv6 address. */
49 extern bool git_net_url_is_ipv6(git_net_url
*url
);
51 /* Applies a redirect to the URL with a git-aware service suffix. */
52 extern int git_net_url_apply_redirect(
54 const char *redirect_location
,
56 const char *service_suffix
);
58 /** Swaps the contents of one URL for another. */
59 extern void git_net_url_swap(git_net_url
*a
, git_net_url
*b
);
61 /** Places the URL into the given buffer. */
62 extern int git_net_url_fmt(git_str
*out
, git_net_url
*url
);
64 /** Place the path and query string into the given buffer. */
65 extern int git_net_url_fmt_path(git_str
*buf
, git_net_url
*url
);
67 /** Determines if the url matches given pattern or pattern list */
68 extern bool git_net_url_matches_pattern(
71 extern bool git_net_url_matches_pattern_list(
73 const char *pattern_list
);
75 /** Disposes the contents of the structure. */
76 extern void git_net_url_dispose(git_net_url
*url
);