librazor/util.c
changeset 478 8e4bf84a7bb8
parent 475 008c75a5e08d
child 491 b18e0bf48a91
     1.1 --- a/librazor/util.c	Mon Jul 04 10:48:18 2016 +0100
     1.2 +++ b/librazor/util.c	Thu Jul 07 11:04:10 2016 +0100
     1.3 @@ -269,6 +269,33 @@
     1.4  	return concat;
     1.5  }
     1.6  
     1.7 +RAZOR_EXPORT char *
     1.8 +razor_resolve_relative_uri(const char *base_uri, const char *relative_uri,
     1.9 +			   struct razor_error **error)
    1.10 +{
    1.11 +	char *result;
    1.12 +	struct razor_uri ru, base, ref;
    1.13 +
    1.14 +	if (razor_uri_parse_uri(&base, base_uri, 1, error))
    1.15 +		return NULL;
    1.16 +
    1.17 +	if (razor_uri_parse_relative_ref(&ref, relative_uri, error)) {
    1.18 +		razor_uri_destroy(&base);
    1.19 +		return NULL;
    1.20 +	}
    1.21 +
    1.22 +	razor_uri_resolve(&ru, &base, &ref);
    1.23 +
    1.24 +	razor_uri_destroy(&base);
    1.25 +	razor_uri_destroy(&ref);
    1.26 +
    1.27 +	result = razor_uri_recompose(&ru);
    1.28 +
    1.29 +	razor_uri_destroy(&ru);
    1.30 +
    1.31 +	return result;
    1.32 +}
    1.33 +
    1.34  RAZOR_EXPORT const char *razor_system_arch(void)
    1.35  {
    1.36  #ifdef MSWIN_API