mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-04-10 19:15:13 +00:00
86 lines
2.5 KiB
Plaintext
86 lines
2.5 KiB
Plaintext
/*
|
|
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
*
|
|
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
*/
|
|
#ifndef INCLUDE_net_h__
|
|
#define INCLUDE_net_h__
|
|
|
|
#include "git2_util.h"
|
|
|
|
typedef struct git_net_url {
|
|
char *scheme;
|
|
char *host;
|
|
char *port;
|
|
char *path;
|
|
char *query;
|
|
char *fragment;
|
|
char *username;
|
|
char *password;
|
|
} git_net_url;
|
|
|
|
#define GIT_NET_URL_INIT { NULL }
|
|
|
|
/** Is a given string a url? */
|
|
extern bool git_net_str_is_url(const char *str);
|
|
|
|
/** 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. */
|
|
extern int git_net_url_parse(git_net_url *url, const char *str);
|
|
|
|
/** Parses a string containing an SCP style path into a URL structure. */
|
|
extern int git_net_url_parse_scp(git_net_url *url, const char *str);
|
|
|
|
/**
|
|
* Parses a string containing a standard URL or an SCP style path into
|
|
* a URL structure.
|
|
*/
|
|
extern int git_net_url_parse_standard_or_scp(git_net_url *url, const char *str);
|
|
|
|
/** Appends a path and/or query string to the given URL */
|
|
extern int git_net_url_joinpath(
|
|
git_net_url *out,
|
|
git_net_url *in,
|
|
const char *path);
|
|
|
|
/** Ensures that a URL is minimally valid (contains a host, port and path) */
|
|
extern bool git_net_url_valid(git_net_url *url);
|
|
|
|
/** Returns true if the URL is on the default port. */
|
|
extern bool git_net_url_is_default_port(git_net_url *url);
|
|
|
|
/** Returns true if the host portion of the URL is an ipv6 address. */
|
|
extern bool git_net_url_is_ipv6(git_net_url *url);
|
|
|
|
/* Applies a redirect to the URL with a git-aware service suffix. */
|
|
extern int git_net_url_apply_redirect(
|
|
git_net_url *url,
|
|
const char *redirect_location,
|
|
bool allow_offsite,
|
|
const char *service_suffix);
|
|
|
|
/** Swaps the contents of one URL for another. */
|
|
extern void git_net_url_swap(git_net_url *a, git_net_url *b);
|
|
|
|
/** Places the URL into the given buffer. */
|
|
extern int git_net_url_fmt(git_str *out, git_net_url *url);
|
|
|
|
/** Place the path and query string into the given buffer. */
|
|
extern int git_net_url_fmt_path(git_str *buf, git_net_url *url);
|
|
|
|
/** Determines if the url matches given pattern or pattern list */
|
|
extern bool git_net_url_matches_pattern(
|
|
git_net_url *url,
|
|
const char *pattern);
|
|
extern bool git_net_url_matches_pattern_list(
|
|
git_net_url *url,
|
|
const char *pattern_list);
|
|
|
|
/** Disposes the contents of the structure. */
|
|
extern void git_net_url_dispose(git_net_url *url);
|
|
|
|
#endif
|