gwenhywfar 5.14.1
httpsession.h
Go to the documentation of this file.
1/***************************************************************************
2 begin : Fri Feb 15 2008
3 copyright : (C) 2019 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10
11#ifndef GWEN_HTTP_SESSION_H
12#define GWEN_HTTP_SESSION_H
13
14
15#include <gwenhywfar/inherit.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
23
24#ifdef __cplusplus
25}
26#endif
27
28
29#include <gwenhywfar/url.h>
30#include <gwenhywfar/buffer.h>
31#include <gwenhywfar/syncio.h>
33
34
35#ifndef NO_DEPRECATED_SYMBOLS
39# define GWEN_HTTP_SESSION_FLAGS_FORCE_SSL3 0x00000001 /* deprecated, will be removed in a future release */
40#endif // ifndef NO_DEPRECATED_SYMBOLS
41#define GWEN_HTTP_SESSION_FLAGS_NO_CACHE 0x00000002
42#ifndef NO_DEPRECATED_SYMBOLS
43# define GWEN_HTTP_SESSION_FLAGS_TLS_ONLY_SAFE_CIPHERS 0x00000004 /* deprecated, will be removed in a future release */
44# define GWEN_HTTP_SESSION_FLAGS_TLS_FORCE_UNSAFE_CIPHERS 0x00000008 /* deprecated, will be removed in a future release */
45#endif // ifndef NO_DEPRECATED_SYMBOLS
46
47#define GWEN_HTTP_SESSION_FLAGS_TLS_IGN_PREMATURE_CLOSE 0x00000010
48
49#define GWEN_HTTP_SESSION_FLAGS_PASSIVE 0x00000020 /* server session */
50
51#ifdef __cplusplus
52extern "C" {
53#endif
54
55
61
66
78GWEN_HTTP_SESSION *GWEN_HttpSession_new(const char *url, const char *defaultProto, int defaultPort);
79
80
93
94
105
106
109
113
114
115
123
126
129
132
135
138
141
144
147
148
151
154
157
161
162
163
170
173
175
176
177
182
194 const char *httpCommand,
195 const uint8_t *buf, uint32_t blen);
196
197
205
208
217
219
220
221
226
227
239 GWEN_DB_NODE *dbCommandAndHeader,
240 GWEN_BUFFER *buf);
241
255 int resultCode,
256 const char *resultText,
257 const uint8_t *buf, uint32_t blen);
259
260
261
269
273
275
276
277 /* defgroup */
279
280
281
282#ifdef __cplusplus
283}
284#endif
285
286
287#endif
288
struct GWEN_DB_NODE GWEN_DB_NODE
Definition db.h:228
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition buffer.h:38
#define GWENHYWFAR_API
#define GWENHYWFAR_CB
GWENHYWFAR_API int GWEN_HttpSession_SendPacket(GWEN_HTTP_SESSION *sess, const char *httpCommand, const uint8_t *buf, uint32_t blen)
GWENHYWFAR_API GWEN_HTTP_SESSION * GWEN_HttpSession_fromSyncIoPassive(GWEN_SYNCIO *sio)
struct GWEN_HTTP_SESSION GWEN_HTTP_SESSION
Definition httpsession.h:21
GWENHYWFAR_API int GWEN_HttpSession_SendStatus(GWEN_HTTP_SESSION *sess, int resultCode, const char *resultText, const uint8_t *buf, uint32_t blen)
GWENHYWFAR_API void GWEN_HttpSession_SetHttpVMinor(GWEN_HTTP_SESSION *sess, int i)
GWENHYWFAR_API GWEN_HTTP_SESSION * GWEN_HttpSession_new(const char *url, const char *defaultProto, int defaultPort)
GWENHYWFAR_API void GWEN_HttpSession_SetHttpVMajor(GWEN_HTTP_SESSION *sess, int i)
GWENHYWFAR_API int GWEN_HttpSession_RecvCommand(GWEN_HTTP_SESSION *sess, GWEN_DB_NODE *dbCommandAndHeader, GWEN_BUFFER *buf)
GWENHYWFAR_API int GWEN_HttpSession_RecvPacketToFile(GWEN_HTTP_SESSION *sess, const char *fname)
GWENHYWFAR_API void GWEN_HttpSession_SetFlags(GWEN_HTTP_SESSION *sess, uint32_t fl)
GWENHYWFAR_API int GWEN_HttpSession_Fini(GWEN_HTTP_SESSION *sess)
GWENHYWFAR_API void GWEN_HttpSession_Attach(GWEN_HTTP_SESSION *sess)
GWENHYWFAR_API GWEN_HTTP_SESSION * GWEN_HttpSession_fromSocketPassive(GWEN_SOCKET *sk, const char *proto, int port)
GWENHYWFAR_API int GWEN_HttpSession_ConnectionTest(GWEN_HTTP_SESSION *sess)
GWENHYWFAR_API int GWEN_HttpSession_GetHttpVMajor(const GWEN_HTTP_SESSION *sess)
GWENHYWFAR_API void GWEN_HttpSession_AddFlags(GWEN_HTTP_SESSION *sess, uint32_t fl)
GWENHYWFAR_API void GWEN_HttpSession_SubFlags(GWEN_HTTP_SESSION *sess, uint32_t fl)
GWENHYWFAR_API void GWEN_HttpSession_SetHttpContentType(GWEN_HTTP_SESSION *sess, const char *s)
GWENHYWFAR_API const char * GWEN_HttpSession_GetHttpUserAgent(const GWEN_HTTP_SESSION *sess)
GWENHYWFAR_API const char * GWEN_HttpSession_GetHttpContentType(const GWEN_HTTP_SESSION *sess)
int GWENHYWFAR_CB(* GWEN_HTTPSESSION_INITSYNCIO_FN)(GWEN_HTTP_SESSION *sess, GWEN_SYNCIO *sio)
GWENHYWFAR_API void GWEN_HttpSession_SetHttpUserAgent(GWEN_HTTP_SESSION *sess, const char *s)
GWENHYWFAR_API uint32_t GWEN_HttpSession_GetFlags(const GWEN_HTTP_SESSION *sess)
GWENHYWFAR_API int GWEN_HttpSession_RecvPacket(GWEN_HTTP_SESSION *sess, GWEN_BUFFER *buf)
GWENHYWFAR_API GWEN_HTTPSESSION_INITSYNCIO_FN GWEN_HttpSession_SetInitSyncIoFn(GWEN_HTTP_SESSION *sess, GWEN_HTTPSESSION_INITSYNCIO_FN f)
GWENHYWFAR_API int GWEN_HttpSession_Init(GWEN_HTTP_SESSION *sess)
GWENHYWFAR_API void GWEN_HttpSession_free(GWEN_HTTP_SESSION *sess)
GWENHYWFAR_API int GWEN_HttpSession_GetHttpVMinor(const GWEN_HTTP_SESSION *sess)
This file contains sockets and socket sets.
struct GWEN_SOCKET GWEN_SOCKET
Definition inetsocket.h:44
#define GWEN_INHERIT_FUNCTION_LIB_DEFS(t, decl)
Definition inherit.h:125
struct GWEN_SYNCIO GWEN_SYNCIO
Definition syncio.h:40