gwenhywfar 5.12.0
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
123
126
129
132
135
138
141
144
147
148
151
154
157
170
173
182
194 const char *httpCommand,
195 const uint8_t *buf, uint32_t blen);
196
197
205
208
217
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);
269
273 /* 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:40
#define GWEN_INHERIT_FUNCTION_LIB_DEFS(t, decl)
Definition inherit.h:125
struct GWEN_SYNCIO GWEN_SYNCIO
Definition syncio.h:40