Grid Community Toolkit  6.2.1566487665 (tag: v6.2.20190829)
Data Structures | Enumerations | Functions
URL String Parser

URL String Parser. More...

Data Structures

struct  globus_url_t
 Parsed URLs.This structure contains the fields which were parsed from an string representation of an URL. There are no methods to access fields of this structure. More...
 

Enumerations

enum  globus_url_scheme_t {
  GLOBUS_URL_SCHEME_FTP =0, GLOBUS_URL_SCHEME_GSIFTP, GLOBUS_URL_SCHEME_HTTP, GLOBUS_URL_SCHEME_HTTPS,
  GLOBUS_URL_SCHEME_LDAP, GLOBUS_URL_SCHEME_FILE, GLOBUS_URL_SCHEME_X_NEXUS, GLOBUS_URL_SCHEME_X_GASS_CACHE,
  GLOBUS_URL_SCHEME_UNKNOWN , GLOBUS_URL_NUM_SCHEMES
}
 URL Schemes.The Globus URL library supports a set of URL schemes (protocols). This enumeration can be used to quickly dispatch a parsed URL based on a constant value. More...
 

Functions

int globus_url_parse (const char *url_string, globus_url_t *url)
 
int globus_url_parse_rfc1738 (const char *url_string, globus_url_t *url)
 
int globus_url_parse_loose (const char *url_string, globus_url_t *url)
 
int globus_url_destroy (globus_url_t *url)
 
int globus_url_get_scheme (const char *url_string, globus_url_scheme_t *scheme_type)
 
int globus_url_copy (globus_url_t *dst, const globus_url_t *src)
 

Detailed Description

URL String Parser.

The Globus URL functions provide a simple mechanism for parsing a URL string into a data structure, and for determining the scheme of an URL string.

Enumeration Type Documentation

◆ globus_url_scheme_t

URL Schemes.The Globus URL library supports a set of URL schemes (protocols). This enumeration can be used to quickly dispatch a parsed URL based on a constant value.

See also
globus_url_t::scheme_type
Enumerator
GLOBUS_URL_SCHEME_FTP 

File Transfer Protocol

GLOBUS_URL_SCHEME_GSIFTP 

GSI-enhanced File Transfer Protocol

GLOBUS_URL_SCHEME_HTTP 

HyperText Transfer Protocol

GLOBUS_URL_SCHEME_HTTPS 

Secure HyperText Transfer Protocol

GLOBUS_URL_SCHEME_LDAP 

Lightweight Directory Access Protocol

GLOBUS_URL_SCHEME_FILE 

File Location

GLOBUS_URL_SCHEME_X_NEXUS 

Nexus endpoint

GLOBUS_URL_SCHEME_X_GASS_CACHE 

GASS Cache Entry

GLOBUS_URL_SCHEME_UNKNOWN 

Any other URL of the form scheme://something

GLOBUS_URL_NUM_SCHEMES 

Total number of URL schemes supported

Function Documentation

◆ globus_url_copy()

int globus_url_copy ( globus_url_t dst,
const globus_url_t src 
)

Create a copy of an URL structure.

This function copies the contents of a url structure into another.

Parameters
dstThe URL structure to be populated with a copy of the contents of src.
srcThe original URL.
Return values
GLOBUS_SUCCESSThe URL was successfully copied.
GLOBUS_URL_ERROR_NULL_URLOne of the URLs was GLOBUS_NULL.
GLOBUS_URL_ERROR_OUT_OF_MEMORY;The library was unable to allocate memory to create the the globus_url_t contents.

◆ globus_url_destroy()

int globus_url_destroy ( globus_url_t url)

Destroy a globus_url_t structure.

This function frees all memory associated with a globus_url_t structure.

Parameters
urlThe url structure to destroy
Return values
GLOBUS_SUCCESSThe URL was successfully destroyed.

◆ globus_url_get_scheme()

int globus_url_get_scheme ( const char *  url_string,
globus_url_scheme_t scheme_type 
)

Get the scheme of an URL.

This function determines the scheme type of the url string, and populates the variable pointed to by second parameter with that value. This performs a less expensive parsing than globus_url_parse() and is suitable for applications which need only to choose a handler based on the URL scheme.

Parameters
url_stringThe string containing the URL.
scheme_typeA pointer to a globus_url_scheme_t which will be set to the scheme.
Return values
GLOBUS_SUCCESSThe URL scheme was recogized, and scheme_type has been updated.
GLOBUS_URL_ERROR_BAD_SCHEMEThe URL scheme was not recogized.

◆ globus_url_parse()

int globus_url_parse ( const char *  url_string,
globus_url_t url 
)

Parse a string containing a URL into a globus_url_t

Parameters
url_stringString to parse
urlPointer to globus_url_t to be filled with the fields of the url
Return values
GLOBUS_SUCCESSThe string was successfully parsed.
GLOBUS_URL_ERROR_NULL_STRINGThe url_string was GLOBUS_NULL.
GLOBUS_URL_ERROR_NULL_URLThe URL pointer was GLOBUS_NULL.
GLOBUS_URL_ERROR_BAD_SCHEMEThe URL scheme (protocol) contained invalid characters.
GLOBUS_URL_ERROR_BAD_USERThe user part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PASSWORDThe password part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_HOSTThe host part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PORTThe port part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PATHThe path part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_DN-9 The DN part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_ATTRIBUTES-10 The attributes part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_SCOPE-11 The scope part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_FILTER-12 The filter part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_OUT_OF_MEMORY-13 The library was unable to allocate memory to create the the globus_url_t contents.
GLOBUS_URL_ERROR_INTERNAL_ERROR-14 Some unexpected error occurred parsing the URL.

◆ globus_url_parse_loose()

int globus_url_parse_loose ( const char *  url_string,
globus_url_t url 
)

Parse a string containing a URL into a globus_url_t Looser restrictions on characters allowed in the path part of the URL.

Parameters
url_stringString to parse
urlPointer to globus_url_t to be filled with the fields of the url
Return values
GLOBUS_SUCCESSThe string was successfully parsed.
GLOBUS_URL_ERROR_NULL_STRINGThe url_string was GLOBUS_NULL.
GLOBUS_URL_ERROR_NULL_URLThe URL pointer was GLOBUS_NULL.
GLOBUS_URL_ERROR_BAD_SCHEMEThe URL scheme (protocol) contained invalid characters.
GLOBUS_URL_ERROR_BAD_USERThe user part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PASSWORDThe password part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_HOSTThe host part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PORTThe port part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PATHThe path part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_DN-9 The DN part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_ATTRIBUTES-10 The attributes part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_SCOPE-11 The scope part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_FILTER-12 The filter part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_OUT_OF_MEMORY-13 The library was unable to allocate memory to create the the globus_url_t contents.
GLOBUS_URL_ERROR_INTERNAL_ERROR-14 Some unexpected error occurred parsing the URL.

◆ globus_url_parse_rfc1738()

int globus_url_parse_rfc1738 ( const char *  url_string,
globus_url_t url 
)

Parse a string containing a URL into a globus_url_t

Parameters
url_stringString to parse
urlPointer to globus_url_t to be filled with the fields of the url
Return values
GLOBUS_SUCCESSThe string was successfully parsed.
GLOBUS_URL_ERROR_NULL_STRINGThe url_string was GLOBUS_NULL.
GLOBUS_URL_ERROR_NULL_URLThe URL pointer was GLOBUS_NULL.
GLOBUS_URL_ERROR_BAD_SCHEMEThe URL scheme (protocol) contained invalid characters.
GLOBUS_URL_ERROR_BAD_USERThe user part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PASSWORDThe password part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_HOSTThe host part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PORTThe port part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_PATHThe path part of the URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_DN-9 The DN part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_ATTRIBUTES-10 The attributes part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_SCOPE-11 The scope part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_BAD_FILTER-12 The filter part of an LDAP URL contained invalid characters.
GLOBUS_URL_ERROR_OUT_OF_MEMORY-13 The library was unable to allocate memory to create the the globus_url_t contents.
GLOBUS_URL_ERROR_INTERNAL_ERROR-14 Some unexpected error occurred parsing the URL.