YAZ
4.2.57
Main Page
Data Structures
Files
File List
Globals
include
yaz
zgdu.h
Go to the documentation of this file.
1
/* This file is part of the YAZ toolkit.
2
* Copyright (C) 1995-2013 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
38
YAZ_BEGIN_CDECL
39
40
typedef
struct
Z_HTTP_Header
Z_HTTP_Header
;
41
42
struct
Z_HTTP_Header
{
43
char
*
name
;
44
char
*
value
;
45
Z_HTTP_Header
*
next
;
46
};
47
48
typedef
struct
{
49
char
*
method
;
50
char
*
version
;
51
char
*
path
;
52
Z_HTTP_Header
*
headers
;
53
char
*
content_buf
;
54
int
content_len
;
55
}
Z_HTTP_Request
;
56
57
typedef
struct
{
58
int
code
;
59
char
*
version
;
60
Z_HTTP_Header
*
headers
;
61
char
*
content_buf
;
62
int
content_len
;
63
}
Z_HTTP_Response
;
64
65
#define Z_GDU_Z3950 1
66
#define Z_GDU_HTTP_Request 2
67
#define Z_GDU_HTTP_Response 3
68
typedef
struct
{
69
int
which
;
70
union
{
71
Z_APDU
*
z3950
;
72
Z_HTTP_Request
*
HTTP_Request
;
73
Z_HTTP_Response
*
HTTP_Response
;
74
} u;
75
}
Z_GDU
;
76
YAZ_EXPORT
int
z_GDU
(
ODR
o,
Z_GDU
**p,
int
opt
,
const
char
*
name
);
77
YAZ_EXPORT
void
z_HTTP_header_add
(
ODR
o,
Z_HTTP_Header
**hp,
const
char
*n,
78
const
char
*v);
79
YAZ_EXPORT
void
z_HTTP_header_set
(
ODR
o,
Z_HTTP_Header
**hp,
const
char
*n,
80
const
char
*v);
81
YAZ_EXPORT
void
z_HTTP_header_add_content_type
(
ODR
o,
Z_HTTP_Header
**hp,
82
const
char
*content_type,
83
const
char
*charset);
84
YAZ_EXPORT
void
z_HTTP_header_add_basic_auth
(
ODR
o,
Z_HTTP_Header
**hp,
85
const
char
*username,
86
const
char
*password);
87
88
YAZ_EXPORT
const
char
*
z_HTTP_header_lookup
(
const
Z_HTTP_Header
*hp,
const
char
*n);
89
90
YAZ_EXPORT
const
char
*
z_HTTP_errmsg
(
int
code);
91
92
YAZ_EXPORT
Z_GDU
*
z_get_HTTP_Response
(
ODR
o,
int
code);
93
YAZ_EXPORT
Z_GDU
*
z_get_HTTP_Request
(
ODR
o);
94
YAZ_EXPORT
Z_GDU
*
z_get_HTTP_Request_host_path
(
ODR
odr
,
95
const
char
*host,
96
const
char
*path);
97
YAZ_EXPORT
Z_GDU
*
z_get_HTTP_Request_uri
(
ODR
odr
,
const
char
*uri,
98
const
char
*args,
99
int
use_full_uri);
100
YAZ_EXPORT
int
yaz_decode_http_request
(
ODR
o,
Z_HTTP_Request
**hr_p);
101
YAZ_EXPORT
int
yaz_decode_http_response
(
ODR
o,
Z_HTTP_Response
**hr_p);
102
YAZ_EXPORT
int
yaz_encode_http_response
(
ODR
o,
Z_HTTP_Response
*hr);
103
YAZ_EXPORT
int
yaz_encode_http_request
(
ODR
o,
Z_HTTP_Request
*hr);
104
105
YAZ_END_CDECL
106
107
#endif
108
/*
109
* Local variables:
110
* c-basic-offset: 4
111
* c-file-style: "Stroustrup"
112
* indent-tabs-mode: nil
113
* End:
114
* vim: shiftwidth=4 tabstop=8 expandtab
115
*/
116
Generated on Wed May 15 2013 14:55:31 for YAZ by
1.8.1.2