Grid Community Toolkit  6.2.1607800521 (tag: v6.2.20201212)
Data Structures | Enumerations | Functions
globus_xio_http.h File Reference

Globus XIO HTTP Driver Header. More...

#include "globus_xio.h"

Go to the source code of this file.

Data Structures

struct  globus_xio_http_header_t
 HTTP Header. More...
 

Enumerations

enum  globus_xio_http_handle_cmd_t {
  GLOBUS_XIO_HTTP_HANDLE_SET_RESPONSE_HEADER, GLOBUS_XIO_HTTP_HANDLE_SET_RESPONSE_STATUS_CODE, GLOBUS_XIO_HTTP_HANDLE_SET_RESPONSE_REASON_PHRASE, GLOBUS_XIO_HTTP_HANDLE_SET_RESPONSE_HTTP_VERSION,
  GLOBUS_XIO_HTTP_HANDLE_SET_END_OF_ENTITY
}
 
enum  globus_xio_http_attr_cmd_t {
  GLOBUS_XIO_HTTP_ATTR_SET_REQUEST_METHOD, GLOBUS_XIO_HTTP_ATTR_SET_REQUEST_HTTP_VERSION, GLOBUS_XIO_HTTP_ATTR_SET_REQUEST_HEADER, GLOBUS_XIO_HTTP_ATTR_DELAY_WRITE_HEADER,
  GLOBUS_XIO_HTTP_GET_REQUEST, GLOBUS_XIO_HTTP_GET_RESPONSE
}
 
enum  globus_xio_http_errors_t {
  GLOBUS_XIO_HTTP_ERROR_INVALID_HEADER, GLOBUS_XIO_HTTP_ERROR_PARSE, GLOBUS_XIO_HTTP_ERROR_NO_ENTITY, GLOBUS_XIO_HTTP_ERROR_EOF,
  GLOBUS_XIO_HTTP_ERROR_PERSISTENT_CONNECTION_DROPPED
}
 
enum  globus_xio_http_version_t { , GLOBUS_XIO_HTTP_VERSION_1_0, GLOBUS_XIO_HTTP_VERSION_1_1 }
 

Functions

globus_result_t globus_xio_handle_cntl (handle, driver, GLOBUS_XIO_HTTP_HANDLE_SET_RESPONSE_HEADER, const char *header_name, const char *header_value)
 
globus_result_t globus_xio_handle_cntl (handle, driver, GLOBUS_XIO_HTTP_HANDLE_SET_RESPONSE_STATUS_CODE, int status)
 
globus_result_t globus_xio_handle_cntl (handle, driver, GLOBUS_XIO_HTTP_HANDLE_SET_RESPONSE_REASON_PHRASE, const char *reason)
 
globus_result_t globus_xio_handle_cntl (handle, driver, GLOBUS_XIO_HTTP_HANDLE_SET_RESPONSE_HTTP_VERSION, globus_xio_http_version_t version)
 
globus_result_t globus_xio_handle_cntl (handle, driver, GLOBUS_XIO_HTTP_HANDLE_SET_END_OF_ENTITY)
 
globus_result_t globus_xio_attr_cntl (attr, driver, GLOBUS_XIO_HTTP_ATTR_SET_REQUEST_METHOD, const char *method)
 
globus_result_t globus_xio_attr_cntl (attr, driver, GLOBUS_XIO_HTTP_ATTR_SET_REQUEST_HTTP_VERSION, globus_xio_http_version_t version)
 
globus_result_t globus_xio_attr_cntl (attr, driver, GLOBUS_XIO_HTTP_ATTR_SET_REQUEST_HEADER, const char *header_name, const char *header_value)
 
globus_result_t globus_xio_attr_cntl (attr, driver, GLOBUS_XIO_HTTP_ATTR_DELAY_WRITE_HEADER)
 
globus_result_t globus_xio_data_descriptor_cntl (dd, driver, GLOBUS_XIO_HTTP_GET_REQUEST, char **method, char **uri, globus_xio_http_version_t *http_version, globus_hashtable_t *headers)
 
globus_result_t globus_xio_data_descriptor_cntl (dd, driver, GLOBUS_XIO_HTTP_GET_RESPONSE, int *status_code, char **reason_phrase, globus_xio_http_version_t *http_version, globus_hashtable_t *headers)
 

Detailed Description

Globus XIO HTTP Driver Header.

Function Documentation

◆ globus_xio_attr_cntl()

globus_result_t globus_xio_attr_cntl ( attr  ,
driver  ,
GLOBUS_XIO_HTTP_ATTR_DELAY_WRITE_HEADER   
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Delay writing HTTP request until first data write.

If this attribute is present when opening an HTTP handle, the HTTP request will not be sent immediately upon opening the handle. Instead, it will be delayed until the first data write is done. This allows other HTTP headers to be sent after the handle is opened.

This attribute cntl takes no arguments.

◆ globus_xio_data_descriptor_cntl() [1/2]

globus_result_t globus_xio_data_descriptor_cntl ( dd  ,
driver  ,
GLOBUS_XIO_HTTP_GET_REQUEST  ,
char **  method,
char **  uri,
globus_xio_http_version_t http_version,
globus_hashtable_t *  headers 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get HTTP Request Information.

Returns in the passed parameters values concerning the HTTP request. Any of the parameters may be NULL if the application is not interested in that part of the information.

Parameters
methodPointer to be set to the HTTP request method (typically GET, PUT, or POST). The caller must not access this value outside of the lifetime of the data descriptor nor free it.
uriPointer to be set to the requested HTTP path. The caller must not access this value outside of the lifetime of the data descriptor nor free it.
http_versionPointer to be set to the HTTP version used for this request.
headersPointer to be set to point to a hashtable of globus_xio_http_header_t values, keyed by the HTTP header names. The caller must not access this value outside of the lifetime of the data descriptor nor free it or any values in it.

◆ globus_xio_data_descriptor_cntl() [2/2]

globus_result_t globus_xio_data_descriptor_cntl ( dd  ,
driver  ,
GLOBUS_XIO_HTTP_GET_RESPONSE  ,
int *  status_code,
char **  reason_phrase,
globus_xio_http_version_t http_version,
globus_hashtable_t *  headers 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get HTTP Response Information

Returns in the passed parameters values concerning the HTTP response. Any of the parameters may be NULL if the application is not interested in that part of the information.

Parameters
status_codePointer to be set to the HTTP response status code (such as 404), as per RFC 2616. The caller must not access this value outside of the lifetime of the data descriptor nor free it or any values in it.
reason_phrasePointer to be set to the HTTP response reason phrase (such as Not Found). The caller must not access this value outside of the lifetime of the data descriptor nor free it or any values in it.
http_versionPointer to be set to the HTTP version used for this request.
headersPointer to be set to point to a hashtable of globus_xio_http_header_t values, keyed by the HTTP header names. The caller must not access this value outside of the lifetime of the data descriptor nor free it or any values in it.