YAZ
5.34.0
|
Implements HTTP decoding. More...
#include "odr-priv.h"
#include <yaz/yaz-version.h>
#include <yaz/yaz-iconv.h>
#include <yaz/matchstr.h>
#include <yaz/zgdu.h>
#include <yaz/base64.h>
#include <yaz/comstack.h>
Go to the source code of this file.
Functions | |
static int | decode_headers_content (ODR o, int off, Z_HTTP_Header **headers, char **content_buf, int *content_len) |
void | z_HTTP_header_add_content_type (ODR o, Z_HTTP_Header **hp, const char *content_type, const char *charset) |
void | z_HTTP_header_add_basic_auth (ODR o, Z_HTTP_Header **hp, const char *username, const char *password) |
void | z_HTTP_header_add (ODR o, Z_HTTP_Header **hp, const char *n, const char *v) |
void | z_HTTP_header_set (ODR o, Z_HTTP_Header **hp, const char *n, const char *v) |
const char * | z_HTTP_header_remove (Z_HTTP_Header **hp, const char *n) |
const char * | z_HTTP_header_lookup (const Z_HTTP_Header *hp, const char *n) |
Z_GDU * | z_get_HTTP_Request (ODR o) |
Z_GDU * | z_get_HTTP_Request_host_path (ODR odr, const char *host, const char *path) |
Z_GDU * | z_get_HTTP_Request_uri (ODR odr, const char *uri, const char *args, int use_full_uri) |
Z_GDU * | z_get_HTTP_Response_server (ODR o, int code, const char *details, const char *server, const char *server_url) |
Z_GDU * | z_get_HTTP_Response_details (ODR o, int code, const char *details) |
Z_GDU * | z_get_HTTP_Response (ODR o, int code) |
const char * | z_HTTP_errmsg (int code) |
int | yaz_decode_http_response (ODR o, Z_HTTP_Response **hr_p) |
int | yaz_decode_http_request (ODR o, Z_HTTP_Request **hr_p) |
static void | dump_http_package (ODR o, const char *buf, size_t len) |
int | yaz_encode_http_response (ODR o, Z_HTTP_Response *hr) |
int | yaz_encode_http_request (ODR o, Z_HTTP_Request *hr) |
const char * | yaz_check_location (ODR odr, const char *uri, const char *location, int *host_change) |
Implements HTTP decoding.
Definition in file http.c.
|
static |
Definition at line 21 of file http.c.
References Odr_private::buf, odr::error, Z_HTTP_Header::next, odr_malloc(), odr_strdupn(), OHTTP, odr::op, Odr_private::size, yaz_isdigit, yaz_islower, yaz_isupper, and yaz_strcasecmp().
Referenced by yaz_decode_http_request(), and yaz_decode_http_response().
|
static |
Definition at line 555 of file http.c.
References odr_printf(), ODR_VISIBLESTRING, odr::op, Odr_private::print, and Odr_private::stream_write.
Referenced by yaz_encode_http_request(), and yaz_encode_http_response().
const char* yaz_check_location | ( | ODR | odr, |
const char * | uri, | ||
const char * | location, | ||
int * | host_change | ||
) |
Definition at line 659 of file http.c.
References cs_get_host_args(), and odr_malloc().
Referenced by handle_http(), and yaz_url_exec().
int yaz_decode_http_request | ( | ODR | o, |
Z_HTTP_Request ** | hr_p | ||
) |
Definition at line 505 of file http.c.
References Odr_private::buf, Z_HTTP_Request::content_buf, Z_HTTP_Request::content_len, decode_headers_content(), odr::error, Z_HTTP_Request::headers, Z_HTTP_Request::method, odr_malloc(), odr_strdupn(), OHTTP, odr::op, Z_HTTP_Request::path, Odr_private::size, and Z_HTTP_Request::version.
Referenced by z_GDU().
int yaz_decode_http_response | ( | ODR | o, |
Z_HTTP_Response ** | hr_p | ||
) |
Definition at line 472 of file http.c.
References Odr_private::buf, Z_HTTP_Response::code, Z_HTTP_Response::content_buf, Z_HTTP_Response::content_len, decode_headers_content(), odr::error, Z_HTTP_Response::headers, odr_malloc(), odr_strdupn(), OHTTP, odr::op, Odr_private::size, and Z_HTTP_Response::version.
Referenced by z_GDU().
int yaz_encode_http_request | ( | ODR | o, |
Z_HTTP_Request * | hr | ||
) |
Definition at line 616 of file http.c.
References Odr_private::buf, Z_HTTP_Request::content_buf, Z_HTTP_Request::content_len, odr::direction, dump_http_package(), Z_HTTP_Request::headers, Z_HTTP_Request::method, Z_HTTP_Header::name, Z_HTTP_Header::next, ODR_PRINT, odr_printf(), odr_write(), odr::op, Z_HTTP_Request::path, Odr_private::top, Z_HTTP_Header::value, Z_HTTP_Request::version, and z_HTTP_header_lookup().
Referenced by z_GDU().
int yaz_encode_http_response | ( | ODR | o, |
Z_HTTP_Response * | hr | ||
) |
Definition at line 580 of file http.c.
References Odr_private::buf, Z_HTTP_Response::code, Z_HTTP_Response::content_buf, Z_HTTP_Response::content_len, odr::direction, dump_http_package(), Z_HTTP_Response::headers, Z_HTTP_Header::name, Z_HTTP_Header::next, ODR_PRINT, odr_printf(), odr_write(), odr::op, Odr_private::top, Z_HTTP_Header::value, Z_HTTP_Response::version, yaz_strcasecmp(), and z_HTTP_errmsg().
Referenced by z_GDU().
Definition at line 242 of file http.c.
References Z_HTTP_Request::content_buf, Z_HTTP_Request::content_len, Z_HTTP_Request::headers, Z_GDU::HTTP_Request, Z_HTTP_Request::method, odr_malloc(), Z_HTTP_Request::path, Z_GDU::u, Z_HTTP_Request::version, Z_GDU::which, YAZ_VERSION, Z_GDU_HTTP_Request, and z_HTTP_header_add().
Referenced by z_get_HTTP_Request_host_path(), and z_get_HTTP_Request_uri().
Definition at line 261 of file http.c.
References Z_HTTP_Request::headers, Z_GDU::HTTP_Request, odr_strdup(), odr_strdupn(), Z_HTTP_Request::path, Z_GDU::u, z_get_HTTP_Request(), and z_HTTP_header_add().
Definition at line 291 of file http.c.
References Z_HTTP_Request::headers, Z_GDU::HTTP_Request, odr_malloc(), odr_strdupn(), Z_HTTP_Request::path, Z_GDU::u, z_get_HTTP_Request(), and z_HTTP_header_add().
Referenced by send_HTTP_redirect(), send_srw(), and yaz_url_exec().
Definition at line 384 of file http.c.
References z_get_HTTP_Response_details().
Referenced by ir_read(), and process_http_request().
Definition at line 378 of file http.c.
References YAZ_VERSION, and z_get_HTTP_Response_server().
Referenced by z_get_HTTP_Response().
Z_GDU* z_get_HTTP_Response_server | ( | ODR | o, |
int | code, | ||
const char * | details, | ||
const char * | server, | ||
const char * | server_url | ||
) |
Definition at line 331 of file http.c.
References Z_HTTP_Response::code, Z_HTTP_Response::content_buf, Z_HTTP_Response::content_len, Z_HTTP_Response::headers, Z_GDU::HTTP_Response, odr_malloc(), Z_GDU::u, Z_HTTP_Response::version, Z_GDU::which, Z_GDU_HTTP_Response, z_HTTP_errmsg(), and z_HTTP_header_add().
Referenced by z_get_HTTP_Response_details().
const char* z_HTTP_errmsg | ( | int | code | ) |
Definition at line 389 of file http.c.
Referenced by yaz_encode_http_response(), z_get_HTTP_Response_server(), and ZOOM_connection_error_x().
void z_HTTP_header_add | ( | ODR | o, |
Z_HTTP_Header ** | hp, | ||
const char * | n, | ||
const char * | v | ||
) |
Definition at line 189 of file http.c.
References Z_HTTP_Header::next, odr_malloc(), and odr_strdup().
Referenced by process_http_request(), send_HTTP_redirect(), yaz_cookies_request(), yaz_sru_soap_encode(), yaz_url_exec(), z_get_HTTP_Request(), z_get_HTTP_Request_host_path(), z_get_HTTP_Request_uri(), z_get_HTTP_Response_server(), and z_HTTP_header_add_content_type().
void z_HTTP_header_add_basic_auth | ( | ODR | o, |
Z_HTTP_Header ** | hp, | ||
const char * | username, | ||
const char * | password | ||
) |
Definition at line 168 of file http.c.
References odr_malloc(), yaz_base64encode(), and z_HTTP_header_set().
Referenced by send_HTTP_redirect(), yaz_solr_encode_request(), yaz_sru_get_encode(), yaz_sru_post_encode(), yaz_sru_soap_encode(), and yaz_url_exec().
void z_HTTP_header_add_content_type | ( | ODR | o, |
Z_HTTP_Header ** | hp, | ||
const char * | content_type, | ||
const char * | charset | ||
) |
Definition at line 147 of file http.c.
References odr_malloc(), and z_HTTP_header_add().
Referenced by yaz_sru_get_encode(), yaz_sru_post_encode(), and yaz_sru_soap_encode().
const char* z_HTTP_header_lookup | ( | const Z_HTTP_Header * | hp, |
const char * | n | ||
) |
Definition at line 233 of file http.c.
References Z_HTTP_Header::name, Z_HTTP_Header::next, Z_HTTP_Header::value, and yaz_strcasecmp().
Referenced by handle_http(), process_http_request(), rdf_lookup_node(), srw_bend_init(), yaz_encode_http_request(), yaz_sru_decode(), yaz_srw_check_content_type(), yaz_srw_decode(), yaz_srw_decodeauth(), and yaz_url_exec().
const char* z_HTTP_header_remove | ( | Z_HTTP_Header ** | hp, |
const char * | n | ||
) |
Definition at line 218 of file http.c.
References Z_HTTP_Header::next, and yaz_strcasecmp().
void z_HTTP_header_set | ( | ODR | o, |
Z_HTTP_Header ** | hp, | ||
const char * | n, | ||
const char * | v | ||
) |
Definition at line 200 of file http.c.
References Z_HTTP_Header::next, odr_malloc(), odr_strdup(), and yaz_strcasecmp().
Referenced by yaz_url_exec(), and z_HTTP_header_add_basic_auth().