YAZ 5.35.1
zgdu.h
Go to the documentation of this file.
1/* This file is part of the YAZ toolkit.
2 * Copyright (C) Index Data.
3 * All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of Index Data nor the names of its contributors
13 * may be used to endorse or promote products derived from this
14 * software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
33#ifndef Z_GDU_H
34#define Z_GDU_H
35
36#include <yaz/z-core.h>
37
39
41
43 char *name;
44 char *value;
46};
47
48typedef struct {
49 char *method;
50 char *version;
51 char *path;
56
64
65#define Z_GDU_Z3950 1
66#define Z_GDU_HTTP_Request 2
67#define Z_GDU_HTTP_Response 3
76YAZ_EXPORT int z_GDU (ODR o, Z_GDU **p, int opt, const char *name);
77YAZ_EXPORT void z_HTTP_header_add(ODR o, Z_HTTP_Header **hp, const char *n,
78 const char *v);
79YAZ_EXPORT void z_HTTP_header_set(ODR o, Z_HTTP_Header **hp, const char *n,
80 const char *v);
82 const char *content_type,
83 const char *charset);
84YAZ_EXPORT void z_HTTP_header_add_basic_auth(ODR o, Z_HTTP_Header **hp,
85 const char *username,
86 const char *password);
87YAZ_EXPORT const char *z_HTTP_header_lookup(const Z_HTTP_Header *hp,
88 const char *n);
89YAZ_EXPORT const char *z_HTTP_header_remove(Z_HTTP_Header **hp,
90 const char *n);
91
92YAZ_EXPORT const char *z_HTTP_errmsg(int code);
93
94YAZ_EXPORT Z_GDU *z_get_HTTP_Response(ODR o, int code);
95YAZ_EXPORT Z_GDU *z_get_HTTP_Response_details(ODR o, int code,
96 const char *details);
98 int code, const char *details,
99 const char *server,
100 const char *server_url);
101YAZ_EXPORT Z_GDU *z_get_HTTP_Request(ODR o);
103 const char *host,
104 const char *path);
105YAZ_EXPORT Z_GDU *z_get_HTTP_Request_uri(ODR odr, const char *uri,
106 const char *args,
107 int use_full_uri);
108YAZ_EXPORT int yaz_decode_http_request(ODR o, Z_HTTP_Request **hr_p);
109YAZ_EXPORT int yaz_decode_http_response(ODR o, Z_HTTP_Response **hr_p);
110YAZ_EXPORT int yaz_encode_http_response(ODR o, Z_HTTP_Response *hr);
111YAZ_EXPORT int yaz_encode_http_request(ODR o, Z_HTTP_Request *hr);
112
113YAZ_EXPORT const char *yaz_check_location(ODR odr, const char *uri,
114 const char *location, int *host_change);
116
117#endif
118/*
119 * Local variables:
120 * c-basic-offset: 4
121 * c-file-style: "Stroustrup"
122 * indent-tabs-mode: nil
123 * End:
124 * vim: shiftwidth=4 tabstop=8 expandtab
125 */
126
int opt
Definition initopt.c:19
char * name
Definition initopt.c:18
Definition zgdu.h:68
Z_HTTP_Request * HTTP_Request
Definition zgdu.h:72
int which
Definition zgdu.h:69
Z_APDU * z3950
Definition zgdu.h:71
Z_HTTP_Response * HTTP_Response
Definition zgdu.h:73
char * name
Definition zgdu.h:43
Z_HTTP_Header * next
Definition zgdu.h:45
char * value
Definition zgdu.h:44
Z_HTTP_Header * headers
Definition zgdu.h:52
char * content_buf
Definition zgdu.h:53
char * path
Definition zgdu.h:51
char * version
Definition zgdu.h:50
char * method
Definition zgdu.h:49
int content_len
Definition zgdu.h:54
char * content_buf
Definition zgdu.h:61
Z_HTTP_Header * headers
Definition zgdu.h:60
char * version
Definition zgdu.h:59
int content_len
Definition zgdu.h:62
Definition odr.h:125
#define YAZ_BEGIN_CDECL
Definition yconfig.h:56
#define YAZ_END_CDECL
Definition yconfig.h:57
ASN.1 Module Z39-50-APDU-1995.
int yaz_decode_http_request(ODR o, Z_HTTP_Request **hr_p)
Definition http.c:505
Z_GDU * z_get_HTTP_Response_details(ODR o, int code, const char *details)
Definition http.c:378
int yaz_encode_http_request(ODR o, Z_HTTP_Request *hr)
Definition http.c:616
void z_HTTP_header_add_basic_auth(ODR o, Z_HTTP_Header **hp, const char *username, const char *password)
Definition http.c:168
int yaz_decode_http_response(ODR o, Z_HTTP_Response **hr_p)
Definition http.c:472
Z_GDU * z_get_HTTP_Request_host_path(ODR odr, const char *host, const char *path)
Definition http.c:261
void z_HTTP_header_set(ODR o, Z_HTTP_Header **hp, const char *n, const char *v)
Definition http.c:200
Z_GDU * z_get_HTTP_Response(ODR o, int code)
Definition http.c:384
Z_GDU * z_get_HTTP_Request(ODR o)
Definition http.c:242
Z_GDU * z_get_HTTP_Response_server(ODR o, int code, const char *details, const char *server, const char *server_url)
Definition http.c:331
int yaz_encode_http_response(ODR o, Z_HTTP_Response *hr)
Definition http.c:580
const char * z_HTTP_errmsg(int code)
Definition http.c:389
const char * yaz_check_location(ODR odr, const char *uri, const char *location, int *host_change)
Definition http.c:661
const char * z_HTTP_header_remove(Z_HTTP_Header **hp, const char *n)
Definition http.c:218
const char * z_HTTP_header_lookup(const Z_HTTP_Header *hp, const char *n)
Definition http.c:233
int z_GDU(ODR o, Z_GDU **p, int opt, const char *name)
Definition zgdu.c:17
Z_GDU * z_get_HTTP_Request_uri(ODR odr, const char *uri, const char *args, int use_full_uri)
Definition http.c:291
void z_HTTP_header_add(ODR o, Z_HTTP_Header **hp, const char *n, const char *v)
Definition http.c:189
void z_HTTP_header_add_content_type(ODR o, Z_HTTP_Header **hp, const char *content_type, const char *charset)
Definition http.c:147