Loading...
Searching...
No Matches
URL String Parser
Globus Common API

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

enum 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

  dst | The URL structure to be populated with a copy of the contents of src.
  src | The original URL.

Return values

  GLOBUS_SUCCESS | The URL was successfully copied.
  GLOBUS_URL_ERROR_NULL_URL | One 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

  url | The url structure to destroy

Return values

  GLOBUS_SUCCESS | The 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_string | The string containing the URL.
  scheme_type | A pointer to a globus_url_scheme_t which will be set to the scheme.

Return values

  GLOBUS_SUCCESS | The URL scheme was recognized, and scheme_type has been updated.
  GLOBUS_URL_ERROR_BAD_SCHEME | The 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_string | String to parse
  url | Pointer to globus_url_t to be filled with the fields of the url

Return values

  GLOBUS_SUCCESS | The string was successfully parsed.
  GLOBUS_URL_ERROR_NULL_STRING | The url_string was GLOBUS_NULL.
  GLOBUS_URL_ERROR_NULL_URL | The URL pointer was GLOBUS_NULL.
  GLOBUS_URL_ERROR_BAD_SCHEME | The URL scheme (protocol) contained invalid characters.
  GLOBUS_URL_ERROR_BAD_USER | The user part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PASSWORD | The password part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_HOST | The host part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PORT | The port part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PATH | The 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_string | String to parse
  url | Pointer to globus_url_t to be filled with the fields of the url

Return values

  GLOBUS_SUCCESS | The string was successfully parsed.
  GLOBUS_URL_ERROR_NULL_STRING | The url_string was GLOBUS_NULL.
  GLOBUS_URL_ERROR_NULL_URL | The URL pointer was GLOBUS_NULL.
  GLOBUS_URL_ERROR_BAD_SCHEME | The URL scheme (protocol) contained invalid characters.
  GLOBUS_URL_ERROR_BAD_USER | The user part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PASSWORD | The password part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_HOST | The host part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PORT | The port part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PATH | The 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_string | String to parse
  url | Pointer to globus_url_t to be filled with the fields of the url

Return values

  GLOBUS_SUCCESS | The string was successfully parsed.
  GLOBUS_URL_ERROR_NULL_STRING | The url_string was GLOBUS_NULL.
  GLOBUS_URL_ERROR_NULL_URL | The URL pointer was GLOBUS_NULL.
  GLOBUS_URL_ERROR_BAD_SCHEME | The URL scheme (protocol) contained invalid characters.
  GLOBUS_URL_ERROR_BAD_USER | The user part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PASSWORD | The password part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_HOST | The host part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PORT | The port part of the URL contained invalid characters.
  GLOBUS_URL_ERROR_BAD_PATH | The 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.