globus_common 18.13
Loading...
Searching...
No Matches
URL String Parser

URL String Parser. More...

Data Structures

struct  globus_url_t
 Parsed URLs. 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_SCHEME_SSHFTP , GLOBUS_URL_NUM_SCHEMES
}
 URL Schemes. 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 recognized, and scheme_type has been updated.
GLOBUS_URL_ERROR_BAD_SCHEMEThe URL scheme was not recognized.

◆ 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.