1#include <stdio.h> 2#include "xpl_HTTP.h" 3#include "dmConnection.h" 4#include "dmStringUtil.h" 5 6#ifdef __cplusplus 7extern "C" { 8#endif 9 10 11static DmBrwConnector *stDmBrwConnector = NULL; 12 13XPL_HTTP_HANDLE_T XPL_HTTP_Open(CPCHAR url, 14 CPCHAR ConRef, 15 XPL_ADDR_TYPE_T addrType, 16 XPL_HTTP_RET_STATUS_T * result) 17{ 18 if(stDmBrwConnector == NULL) 19 { 20 stDmBrwConnector = DmBrwCreateConnector(); 21 22 if ( stDmBrwConnector == NULL ) 23 { 24 if ( result ) 25 *result = XPL_HTTP_RET_FAIL; 26 return XPL_HTTP_HANDLE_INVALID; 27 } 28 } 29 30 31 XPL_HTTP_RET_STATUS_T res; 32 res = stDmBrwConnector->Open(url, ConRef, (UINT32)addrType); 33 if ( res == XPL_HTTP_RET_SUCCESS ) 34 { 35 if ( result ) 36 *result = res; 37 return (XPL_HTTP_HANDLE_T)stDmBrwConnector; 38 } 39 else 40 { 41 if ( result ) 42 *result = XPL_HTTP_RET_FAIL; 43 return XPL_HTTP_HANDLE_INVALID; 44 } 45} 46 47 48XPL_HTTP_RET_STATUS_T XPL_HTTP_SetUrl(XPL_HTTP_HANDLE_T handler, 49 CPCHAR url, 50 CPCHAR ConRef, 51 XPL_ADDR_TYPE_T addrType) 52{ 53 DmBrwConnector * brwConnector = (DmBrwConnector*)handler; 54 if ( brwConnector != stDmBrwConnector ) 55 return XPL_HTTP_RET_BADARGUMENT; 56 57 return brwConnector->SetUrl(url, ConRef, (UINT32)addrType); 58} 59 60XPL_HTTP_RET_STATUS_T XPL_HTTP_SetRequestMethod(XPL_HTTP_HANDLE_T handler, XPL_HTTP_METHOD_T method) 61{ 62 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 63 if ( brwConnector != stDmBrwConnector ) 64 return XPL_HTTP_RET_BADARGUMENT; 65 66 return brwConnector->SetRequestMethod(method); 67} 68 69 70XPL_HTTP_RET_STATUS_T 71XPL_HTTP_SetRequestProperty(XPL_HTTP_HANDLE_T handler, CPCHAR buffer) 72{ 73 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 74 if ( brwConnector != stDmBrwConnector ) 75 return XPL_HTTP_RET_BADARGUMENT; 76 77 return brwConnector->SetRequestProperty((CPCHAR)"header_start", buffer); 78} 79 80XPL_HTTP_RET_STATUS_T XPL_HTTP_Send(XPL_HTTP_HANDLE_T handler, CPCHAR data, UINT32 size) 81{ 82 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 83 if ( brwConnector != stDmBrwConnector ) 84 return XPL_HTTP_RET_BADARGUMENT; 85 86 return brwConnector->Send(data,size); 87} 88 89UINT32 XPL_HTTP_GetResponseLength(XPL_HTTP_HANDLE_T handler) 90{ 91 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 92 if ( brwConnector != stDmBrwConnector ) 93 return XPL_HTTP_RET_BADARGUMENT; 94 95 return brwConnector->GetResponseLength(); 96} 97 98XPL_HTTP_RET_STATUS_T XPL_HTTP_GetResponse(XPL_HTTP_HANDLE_T handler, char * data, UINT32 size) 99{ 100 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 101 if ( brwConnector != stDmBrwConnector ) 102 return XPL_HTTP_RET_BADARGUMENT; 103 104 return brwConnector->GetResponse(data,size); 105} 106 107 108XPL_HTTP_RET_STATUS_T XPL_HTTP_GetHeaderField(XPL_HTTP_HANDLE_T handler, CPCHAR field, char **value) 109{ 110 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 111 if ( brwConnector != stDmBrwConnector ) 112 return XPL_HTTP_RET_BADARGUMENT; 113 114 DMString strValue; 115 SYNCML_DM_RET_STATUS_T ret=brwConnector->GetHeaderField(field,strValue); 116 DmStrcpy(*value, strValue.c_str()); 117 return (XPL_HTTP_RET_STATUS_T)ret; 118} 119 120XPL_HTTP_CODE_T XPL_HTTP_GetResponseCode(XPL_HTTP_HANDLE_T handler) 121{ 122 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 123 if ( brwConnector != stDmBrwConnector ) 124 return XPL_HTTP_RET_BADARGUMENT; 125 126 return brwConnector->GetResponseCode(); 127} 128 129XPL_HTTP_RET_STATUS_T XPL_HTTP_Close(XPL_HTTP_HANDLE_T handler) 130{ 131 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 132 if ( brwConnector != stDmBrwConnector ) 133 return XPL_HTTP_RET_BADARGUMENT; 134 135 brwConnector->Close(); 136 137 DmBrwDestroyConnector(brwConnector); 138 stDmBrwConnector = NULL; 139 return XPL_HTTP_RET_SUCCESS; 140} 141 142XPL_HTTP_RET_STATUS_T XPL_HTTP_CloseReq(XPL_HTTP_HANDLE_T handler) 143{ 144 DmBrwConnector* brwConnector = (DmBrwConnector*)handler; 145 if ( brwConnector != stDmBrwConnector ) 146 return XPL_HTTP_RET_BADARGUMENT; 147 148 return brwConnector->CloseReq(); 149} 150 151 152XPL_HTTP_RET_STATUS_T XPL_HTTP_DowloadByFile(XPL_HTTP_HANDLE_T handler, CPCHAR file_name) 153{ 154 return XPL_HTTP_RET_NOT_SUPPORTED; 155 156} 157 158 159XPL_HTTP_RET_STATUS_T XPL_HTTP_DownloadByBuffer(XPL_HTTP_HANDLE_T handler, UINT8 * buffer, UINT32 size) 160{ 161 return XPL_HTTP_RET_NOT_SUPPORTED; 162 163} 164 165XPL_HTTP_RET_STATUS_T 166XPL_HTTP_GetRespHeader(XPL_HTTP_HANDLE_T handler, char ** header) 167{ 168 return XPL_HTTP_RET_NOT_SUPPORTED; 169} 170 171XPL_HTTP_RET_STATUS_T 172XPL_HTTP_GetType(XPL_HTTP_HANDLE_T handler, char ** content_type) 173{ 174 return XPL_HTTP_RET_NOT_SUPPORTED; 175 176} 177 178#ifdef __cplusplus 179} 180#endif 181 182