netconnectionhttp.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile: netconnectionhttp.h,v $
00003                              -------------------
00004     cvs         : $Id: netconnectionhttp.h,v 1.9 2005/10/25 15:37:24 aquamaniac Exp $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
00011  ***************************************************************************/
00012 
00013 #ifndef GWENNET_HTTP_H
00014 #define GWENNET_HTTP_H
00015 
00016 #include <gwenhywfar/gwenhywfarapi.h>
00017 #include <gwenhywfar/netconnection.h>
00018 #include <gwenhywfar/bufferedio.h>
00019 #include <gwenhywfar/httpcookie.h>
00020 
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024 
00025 
00030 #define GWEN_NETCONN_MODE_WAITBEFOREREAD     0x00000001
00031 #define GWEN_NETCONN_MODE_WAITBEFOREBODYREAD 0x00000002
00032 #define GWEN_NETCONN_MODE_RAW                0x00000004
00033 
00051 #define GWEN_NETCONN_MODE_IPC                  0x00000004
00052 
00053 #define GWEN_NETCONN_MODE_DEFAULT (\
00054   0 \
00055   )
00056 
00063 
00065 #define GWEN_NETCONNHTTP_STATE_STARTEDREAD        0x0001
00066 
00067 #define GWEN_NETCONNHTTP_STATE_STARTEDBODYREAD    0x0002
00068 
00073 #define GWEN_NETCONNHTTP_STATE_WAITINGFORREAD     0x0004
00074 
00079 #define GWEN_NETCONNHTTP_STATE_WAITINGFORBODYREAD 0x0008
00080 
00086 typedef enum {
00088   GWEN_NetConnHttp_WriteBodyModeStart=0,
00090   GWEN_NetConnHttp_WriteBodyModeWrite,
00092   GWEN_NetConnHttp_WriteBodyModeStop,
00094   GWEN_NetConnHttp_WriteBodyModeAbort
00095 } GWEN_NETCONNHTTP_WRITEBODY_MODE;
00096 
00097 
00098 typedef enum {
00100   GWEN_NetConnHttp_CheckCookieResult_Accept=0,
00102   GWEN_NetConnHttp_CheckCookieResult_Secure,
00104   GWEN_NetConnHttp_CheckCookieResult_Reject,
00106   GWEN_NetConnHttp_CheckCookieResult_Abort
00107 } GWEN_NETCONNHTTP_CHECK_COOKIE_RESULT;
00108 
00109 
00110 typedef enum {
00111   GWEN_NetConnHttp_AuthType_Basic=0,
00112   GWEN_NetConnHttp_AuthType_Digest
00113 } GWEN_NETCONNHTTP_AUTH_TYPE;
00114 
00115 
00116 typedef GWEN_NETCONNHTTP_CHECK_COOKIE_RESULT
00117 (*GWEN_NETCONNHTTP_CHECK_COOKIE_FN)(GWEN_NETCONNECTION *conn,
00118                                      GWEN_HTTP_COOKIE *cookie);
00119 
00120 
00121 
00122 GWENHYWFAR_API
00123 GWEN_NETCONNECTION *GWEN_NetConnectionHTTP_new(GWEN_NETTRANSPORT *tr,
00124                                                int take,
00125                                                GWEN_TYPE_UINT32 libId,
00126                                                int pmajor,
00127                                                int pminor);
00128 
00154 typedef int (*GWEN_NETCONNHTTP_WRITEBODY_FN)(GWEN_NETCONNECTION *conn,
00155                                              const char *buffer,
00156                                              GWEN_TYPE_UINT32 *bsize,
00157                                              GWEN_NETCONNHTTP_WRITEBODY_MODE m);
00164 GWENHYWFAR_API
00165 void GWEN_NetConnectionHTTP_StartBodyRead(GWEN_NETCONNECTION *conn);
00166 
00172 GWENHYWFAR_API
00173 void GWEN_NetConnectionHTTP_StartRead(GWEN_NETCONNECTION *conn);
00174 
00185 GWENHYWFAR_API
00186 GWEN_NETMSG *GWEN_NetConnectionHTTP_GetCurrentInMsg(GWEN_NETCONNECTION *conn);
00194 GWENHYWFAR_API
00195 GWEN_TYPE_UINT32 GWEN_NetConnectionHTTP_GetMode(GWEN_NETCONNECTION *conn);
00196 GWENHYWFAR_API
00197 void GWEN_NetConnectionHTTP_SetMode(GWEN_NETCONNECTION *conn,
00198                                     GWEN_TYPE_UINT32 m);
00199 GWENHYWFAR_API
00200 void GWEN_NetConnectionHTTP_AddMode(GWEN_NETCONNECTION *conn,
00201                                     GWEN_TYPE_UINT32 m);
00202 GWENHYWFAR_API
00203 void GWEN_NetConnectionHTTP_SubMode(GWEN_NETCONNECTION *conn,
00204                                     GWEN_TYPE_UINT32 m);
00205 
00206 const char*
00207   GWEN_NetConnectionHTTP_GetDefaultURL(const GWEN_NETCONNECTION *conn);
00208 void GWEN_NetConnectionHTTP_SetDefaultURL(GWEN_NETCONNECTION *conn,
00209                                           const char *s);
00210 
00215 GWENHYWFAR_API
00216 GWEN_TYPE_UINT32 GWEN_NetConnectionHTTP_GetState(GWEN_NETCONNECTION *conn);
00217 
00218 GWENHYWFAR_API
00219 GWEN_DB_NODE*
00220 GWEN_NetConnectionHTTP_GetHeaders(const GWEN_NETCONNECTION *conn);
00221 
00225 GWENHYWFAR_API
00226 void GWEN_NetConnectionHTTP_SetHeaders(GWEN_NETCONNECTION *conn,
00227                                        GWEN_DB_NODE *dbHeader);
00228 
00229 GWENHYWFAR_API
00230 const char *
00231 GWEN_NetConnectionHTTP_GetLastResultMsg(const GWEN_NETCONNECTION *conn);
00232 GWENHYWFAR_API
00233 int GWEN_NetConnectionHTTP_GetLastResultCode(const GWEN_NETCONNECTION *conn);
00234 
00235 
00251 const char *
00252   GWEN_NetConnectionHTTP_GetVirtualServer(const GWEN_NETCONNECTION *conn);
00253 void GWEN_NetConnectionHTTP_SetVirtualServer(GWEN_NETCONNECTION *conn,
00254                                              const char *s);
00255 int GWEN_NetConnectionHTTP_GetVirtualPort(const GWEN_NETCONNECTION *conn);
00256 void GWEN_NetConnectionHTTP_SetVirtualPort(GWEN_NETCONNECTION *conn, int port);
00257 
00258 GWEN_DB_NODE*
00259   GWEN_NetConnectionHTTP_GetHeaders(const GWEN_NETCONNECTION *conn);
00260 
00264 void GWEN_NetConnectionHTTP_SetHeaders(GWEN_NETCONNECTION *conn,
00265                                        GWEN_DB_NODE *db);
00266 
00267 GWEN_HTTP_COOKIE_LIST*
00268   GWEN_NetConnectionHTTP_GetCookies(const GWEN_NETCONNECTION *conn);
00269 
00273 void GWEN_NetConnectionHTTP_SetCookies(GWEN_NETCONNECTION *conn,
00274                                        GWEN_HTTP_COOKIE_LIST *cookies);
00275 
00276 int GWEN_NetConnectionHTTP_Request(GWEN_NETCONNECTION *conn,
00277                                    const char *command,
00278                                    const char *arg,
00279                                    const char *body,
00280                                    unsigned int size,
00281                                    GWEN_DB_NODE *dbResultHeader,
00282                                    GWEN_BUFFER *bufResult);
00283 
00345 GWENHYWFAR_API
00346 int GWEN_NetConnectionHTTP_AddRequest(GWEN_NETCONNECTION *conn,
00347                                       GWEN_DB_NODE *dbRequest,
00348                                       GWEN_BUFFER *body,
00349                                       GWEN_BUFFEREDIO *bio);
00350 
00351 
00352 GWENHYWFAR_API
00353 int GWEN_NetConnectionHTTP_AddResponse(GWEN_NETCONNECTION *conn,
00354                                        GWEN_DB_NODE *dbResponse,
00355                                        GWEN_BUFFER *body,
00356                                        GWEN_BUFFEREDIO *bio);
00357 
00365 GWENHYWFAR_API
00366 void GWEN_NetConnectionHTTP_Escape(const char *src, GWEN_BUFFER *buf);
00367 
00368 GWENHYWFAR_API
00369 int GWEN_NetConnectionHTTP_Unescape(const char *src, GWEN_BUFFER *buf);
00373 #ifdef __cplusplus
00374 }
00375 #endif
00376 
00377 
00378 #endif /* GWENNET_HTTP_H */
00379 
00380 
00381 
00382 
00383 

Generated on Wed Jan 11 16:49:07 2006 for gwenhywfar by  doxygen 1.4.6