1 /*
2  * Copyright (C) the libgit2 contributors. All rights reserved.
3  *
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.
6  */
7 
8 #include "proxy.h"
9 
10 #include "git2/proxy.h"
11 
git_proxy_options_init(git_proxy_options * opts,unsigned int version)12 int git_proxy_options_init(git_proxy_options *opts, unsigned int version)
13 {
14 	GIT_INIT_STRUCTURE_FROM_TEMPLATE(
15 		opts, version, git_proxy_options, GIT_PROXY_OPTIONS_INIT);
16 	return 0;
17 }
18 
19 #ifndef GIT_DEPRECATE_HARD
git_proxy_init_options(git_proxy_options * opts,unsigned int version)20 int git_proxy_init_options(git_proxy_options *opts, unsigned int version)
21 {
22 	return git_proxy_options_init(opts, version);
23 }
24 #endif
25 
git_proxy_options_dup(git_proxy_options * tgt,const git_proxy_options * src)26 int git_proxy_options_dup(git_proxy_options *tgt, const git_proxy_options *src)
27 {
28 	if (!src) {
29 		git_proxy_options_init(tgt, GIT_PROXY_OPTIONS_VERSION);
30 		return 0;
31 	}
32 
33 	memcpy(tgt, src, sizeof(git_proxy_options));
34 	if (src->url) {
35 		tgt->url = git__strdup(src->url);
36 		GIT_ERROR_CHECK_ALLOC(tgt->url);
37 	}
38 
39 	return 0;
40 }
41 
git_proxy_options_clear(git_proxy_options * opts)42 void git_proxy_options_clear(git_proxy_options *opts)
43 {
44 	git__free((char *) opts->url);
45 	opts->url = NULL;
46 }
47