---
name: "GLOBUS_URL_SCHEME_GSIFTP"
section: "3"
platform: "linux"
package: "libglobus-common-doc"
version: "18.14-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/globus_url"
---

# GLOBUS\_URL\_SCHEME\_GSIFTP(3)

URL String Parser - URL String Parser.

Part of [globus\_url(3)](/globus_url/3.md).

## NAME

globus\_url - URL String Parser

 \- URL String Parser.

## SYNOPSIS

### Data Structures

struct **globus\_url\_t**\
 Parsed URLs.

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

### 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

### 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

### 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.*

### 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.*

### 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.*

### 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.*

### 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.*

### 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.*

## Author

*Generated automatically by Doxygen for globus\_common from the source code.*
