*/
Result httpcDownloadData(httpcContext *context, u8* buffer, u32 size, u32 *downloadedsize);
-//Using the below functions directly is not recommended, use the above functions. See also the http example.
-
-/**
- * @brief Initializes HTTPC.
- * @param handle HTTPC service handle to use.
- */
-Result HTTPC_Initialize(Handle handle, u32 sharedmem_size, Handle sharedmem_handle);
-
-/**
- * @brief Finalizes HTTPC.
- * @param handle HTTPC service handle to use.
- */
-Result HTTPC_Finalize(Handle handle);
-
-/**
- * @brief Initializes a HTTP connection session.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- */
-Result HTTPC_InitializeConnectionSession(Handle handle, Handle contextHandle);
-
-/**
- * @brief Creates a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param url URL to connect to.
- * @param contextHandle Pointer to output the created HTTP context handle to.
- */
-Result HTTPC_CreateContext(Handle handle, HTTPC_RequestMethod method, char* url, Handle* contextHandle);
-
-/**
- * @brief Closes a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- */
-Result HTTPC_CloseContext(Handle handle, Handle contextHandle);
-
-/**
- * @brief Applies the default proxy to a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- */
-Result HTTPC_SetProxyDefault(Handle handle, Handle contextHandle);
-
-/**
- * @brief Adds a request header field to a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param name Name of the field.
- * @param value of the field.
- */
-Result HTTPC_AddRequestHeaderField(Handle handle, Handle contextHandle, char* name, char* value);
-
-/**
- * @brief Adds a POST form field to a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param name Name of the field.
- * @param value of the field.
- */
-Result HTTPC_AddPostDataAscii(Handle handle, Handle contextHandle, char* name, char* value);
-
-/**
- * @brief Adds a POST body to a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param data Data to be passed as raw into the body of the post request.
- * @param len Length of data passed by data param.
- */
-Result HTTPC_AddPostDataRaw(Handle handle, Handle contextHandle, u32* data, u32 len);
-
-/**
- * @brief Begins a HTTP request.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- */
-Result HTTPC_BeginRequest(Handle handle, Handle contextHandle);
-
-/**
- * @brief Receives data from a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param buffer Buffer to receive data to.
- * @param size Size of the buffer.
- */
-Result HTTPC_ReceiveData(Handle handle, Handle contextHandle, u8* buffer, u32 size);
-
-/**
- * @brief Gets the request state of a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param out Pointer to output the request state to.
- */
-Result HTTPC_GetRequestState(Handle handle, Handle contextHandle, HTTPC_RequestStatus* out);
-
-/**
- * @brief Gets the download size state of a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param downloadedsize Pointer to output the downloaded size to.
- * @param contentsize Pointer to output the total content size to.
- */
-Result HTTPC_GetDownloadSizeState(Handle handle, Handle contextHandle, u32* downloadedsize, u32* contentsize);
-
-/**
- * @brief Gets a response header field from a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param name Name of the field.
- * @param value Pointer to output the value of the field to.
- * @param valuebuf_maxsize Maximum size of the value buffer.
- */
-Result HTTPC_GetResponseHeader(Handle handle, Handle contextHandle, char* name, char* value, u32 valuebuf_maxsize);
-
-/**
- * @brief Gets the status code of a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param out Pointer to output the status code to.
- */
-Result HTTPC_GetResponseStatusCode(Handle handle, Handle contextHandle, u32* out);
-
-/**
- * @brief Adds a trusted RootCA cert to a HTTP context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param cert Pointer to DER cert.
- * @param certsize Size of the DER cert.
- */
-Result HTTPC_AddTrustedRootCA(Handle handle, Handle contextHandle, u8 *cert, u32 certsize);
-
-/**
- * @brief Sets SSL options for the context.
- * @param handle HTTPC service handle to use.
- * @param contextHandle HTTP context handle to use.
- * @param options SSL option flags.
- */
-Result HTTPC_SetSSLOpt(Handle handle, Handle contextHandle, u32 options);
-
static u32 __httpc_sharedmem_size;
static Handle __httpc_sharedmem_handle;
+static Result HTTPC_Initialize(Handle handle, u32 sharedmem_size, Handle sharedmem_handle);
+static Result HTTPC_Finalize(Handle handle);
+
+static Result HTTPC_CreateContext(Handle handle, HTTPC_RequestMethod method, char* url, Handle* contextHandle);
+static Result HTTPC_CloseContext(Handle handle, Handle contextHandle);
+
+static Result HTTPC_InitializeConnectionSession(Handle handle, Handle contextHandle);
+static Result HTTPC_SetProxyDefault(Handle handle, Handle contextHandle);
+
Result httpcInit(u32 sharedmem_size)
{
Result ret=0;
return ret;
}
-Result httpcAddRequestHeaderField(httpcContext *context, char* name, char* value)
-{
- return HTTPC_AddRequestHeaderField(context->servhandle, context->httphandle, name, value);
-}
-
-Result httpcAddPostDataAscii(httpcContext *context, char* name, char* value)
-{
- return HTTPC_AddPostDataAscii(context->servhandle, context->httphandle, name, value);
-}
-
-Result httpcAddPostDataRaw(httpcContext *context, u32* data, u32 len)
-{
- return HTTPC_AddPostDataRaw(context->servhandle, context->httphandle, data, len);
-}
-
-Result httpcBeginRequest(httpcContext *context)
-{
- return HTTPC_BeginRequest(context->servhandle, context->httphandle);
-}
-
-Result httpcReceiveData(httpcContext *context, u8* buffer, u32 size)
-{
- return HTTPC_ReceiveData(context->servhandle, context->httphandle, buffer, size);
-}
-
-Result httpcGetRequestState(httpcContext *context, HTTPC_RequestStatus* out)
-{
- return HTTPC_GetRequestState(context->servhandle, context->httphandle, out);
-}
-
-Result httpcGetDownloadSizeState(httpcContext *context, u32* downloadedsize, u32* contentsize)
-{
- return HTTPC_GetDownloadSizeState(context->servhandle, context->httphandle, downloadedsize, contentsize);
-}
-
-Result httpcGetResponseHeader(httpcContext *context, char* name, char* value, u32 valuebuf_maxsize)
-{
- return HTTPC_GetResponseHeader(context->servhandle, context->httphandle, name, value, valuebuf_maxsize);
-}
-
-Result httpcGetResponseStatusCode(httpcContext *context, u32* out, u64 delay)
-{
- return HTTPC_GetResponseStatusCode(context->servhandle, context->httphandle, out);
-}
-
-Result httpcAddTrustedRootCA(httpcContext *context, u8 *cert, u32 certsize)
-{
- return HTTPC_AddTrustedRootCA(context->servhandle, context->httphandle, cert, certsize);
-}
-
-Result httpcSetSSLOpt(httpcContext *context, u32 options)
-{
- return HTTPC_SetSSLOpt(context->servhandle, context->httphandle, options);
-}
-
Result httpcDownloadData(httpcContext *context, u8* buffer, u32 size, u32 *downloadedsize)
{
Result ret=0;
return dlret;
}
-Result HTTPC_Initialize(Handle handle, u32 sharedmem_size, Handle sharedmem_handle)
+static Result HTTPC_Initialize(Handle handle, u32 sharedmem_size, Handle sharedmem_handle)
{
u32* cmdbuf=getThreadCommandBuffer();
return cmdbuf[1];
}
-Result HTTPC_Finalize(Handle handle)
+static Result HTTPC_Finalize(Handle handle)
{
u32* cmdbuf=getThreadCommandBuffer();
return cmdbuf[1];
}
-Result HTTPC_CreateContext(Handle handle, HTTPC_RequestMethod method, char* url, Handle* contextHandle)
+static Result HTTPC_CreateContext(Handle handle, HTTPC_RequestMethod method, char* url, Handle* contextHandle)
{
u32* cmdbuf=getThreadCommandBuffer();
u32 l=strlen(url)+1;
return cmdbuf[1];
}
-Result HTTPC_InitializeConnectionSession(Handle handle, Handle contextHandle)
+static Result HTTPC_InitializeConnectionSession(Handle handle, Handle contextHandle)
{
u32* cmdbuf=getThreadCommandBuffer();
return cmdbuf[1];
}
-Result HTTPC_SetProxyDefault(Handle handle, Handle contextHandle)
+static Result HTTPC_SetProxyDefault(Handle handle, Handle contextHandle)
{
u32* cmdbuf=getThreadCommandBuffer();
return cmdbuf[1];
}
-Result HTTPC_CloseContext(Handle handle, Handle contextHandle)
+static Result HTTPC_CloseContext(Handle handle, Handle contextHandle)
{
u32* cmdbuf=getThreadCommandBuffer();
return cmdbuf[1];
}
-Result HTTPC_AddRequestHeaderField(Handle handle, Handle contextHandle, char* name, char* value)
+Result httpcAddRequestHeaderField(httpcContext *context, char* name, char* value)
{
u32* cmdbuf=getThreadCommandBuffer();
int value_len=strlen(value)+1;
cmdbuf[0]=IPC_MakeHeader(0x11,3,4); // 0x1100C4
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
cmdbuf[2]=name_len;
cmdbuf[3]=value_len;
cmdbuf[4]=IPC_Desc_StaticBuffer(name_len,3);
cmdbuf[7]=(u32)value;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
return cmdbuf[1];
}
-Result HTTPC_AddPostDataAscii(Handle handle, Handle contextHandle, char* name, char* value)
+Result httpcAddPostDataAscii(httpcContext *context, char* name, char* value)
{
u32* cmdbuf=getThreadCommandBuffer();
int value_len=strlen(value)+1;
cmdbuf[0]=IPC_MakeHeader(0x12,3,4); // 0x1200C4
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
cmdbuf[2]=name_len;
cmdbuf[3]=value_len;
cmdbuf[4]=IPC_Desc_StaticBuffer(name_len,3);
cmdbuf[7]=(u32)value;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
return cmdbuf[1];
}
-Result HTTPC_AddPostDataRaw(Handle handle, Handle contextHandle, u32* data, u32 len)
+Result httpcAddPostDataRaw(httpcContext *context, u32* data, u32 len)
{
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=IPC_MakeHeader(0x14, 2, 2); // 0x140082
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
cmdbuf[2]=len;
cmdbuf[3]=IPC_Desc_Buffer(len, IPC_BUFFER_R);
cmdbuf[4]=(u32)data;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))
{
return ret;
}
return cmdbuf[1];
}
-Result HTTPC_BeginRequest(Handle handle, Handle contextHandle)
+Result httpcBeginRequest(httpcContext *context)
{
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=IPC_MakeHeader(0x9,1,0); // 0x90040
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
return cmdbuf[1];
}
-Result HTTPC_ReceiveData(Handle handle, Handle contextHandle, u8* buffer, u32 size)
+Result httpcReceiveData(httpcContext *context, u8* buffer, u32 size)
{
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=IPC_MakeHeader(0xB,2,2); // 0xB0082
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
cmdbuf[2]=size;
cmdbuf[3]=IPC_Desc_Buffer(size,IPC_BUFFER_W);
cmdbuf[4]=(u32)buffer;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
return cmdbuf[1];
}
-Result HTTPC_GetRequestState(Handle handle, Handle contextHandle, HTTPC_RequestStatus* out)
+Result httpcGetRequestState(httpcContext *context, HTTPC_RequestStatus* out)
{
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=IPC_MakeHeader(0x5,1,0); // 0x50040
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
*out = cmdbuf[2];
return cmdbuf[1];
}
-Result HTTPC_GetDownloadSizeState(Handle handle, Handle contextHandle, u32* downloadedsize, u32* contentsize)
+Result httpcGetDownloadSizeState(httpcContext *context, u32* downloadedsize, u32* contentsize)
{
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=IPC_MakeHeader(0x6,1,0); // 0x60040
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
if(downloadedsize)*downloadedsize = cmdbuf[2];
if(contentsize)*contentsize = cmdbuf[3];
return cmdbuf[1];
}
-
-Result HTTPC_GetResponseHeader(Handle handle, Handle contextHandle, char* name, char* value, u32 valuebuf_maxsize)
+Result httpcGetResponseHeader(httpcContext *context, char* name, char* value, u32 valuebuf_maxsize)
{
u32* cmdbuf=getThreadCommandBuffer();
int name_len=strlen(name)+1;
cmdbuf[0]=IPC_MakeHeader(0x1E,3,4); // 0x1E00C4
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
cmdbuf[2]=name_len;
cmdbuf[3]=valuebuf_maxsize;
cmdbuf[4]=IPC_Desc_StaticBuffer(name_len, 3);
cmdbuf[7]=(u32)value;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
return cmdbuf[1];
}
-Result HTTPC_GetResponseStatusCode(Handle handle, Handle contextHandle, u32* out)
+Result httpcGetResponseStatusCode(httpcContext *context, u32* out, u64 delay)
{
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=IPC_MakeHeader(0x22,1,0); // 0x220040
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
*out = cmdbuf[2];
return cmdbuf[1];
}
-Result HTTPC_AddTrustedRootCA(Handle handle, Handle contextHandle, u8 *cert, u32 certsize)
+Result httpcAddTrustedRootCA(httpcContext *context, u8 *cert, u32 certsize)
{
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=IPC_MakeHeader(0x24,2,2); // 0x240082
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
cmdbuf[2]=certsize;
cmdbuf[3]=IPC_Desc_Buffer(certsize, IPC_BUFFER_R);
cmdbuf[4]=(u32)cert;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
return cmdbuf[1];
}
-Result HTTPC_SetSSLOpt(Handle handle, Handle contextHandle, u32 options)
+Result httpcSetSSLOpt(httpcContext *context, u32 options)
{
u32* cmdbuf=getThreadCommandBuffer();
cmdbuf[0]=IPC_MakeHeader(0x2B,2,0); // 0x2B0080
- cmdbuf[1]=contextHandle;
+ cmdbuf[1]=context->httphandle;
cmdbuf[2]=options;
Result ret=0;
- if(R_FAILED(ret=svcSendSyncRequest(handle)))return ret;
+ if(R_FAILED(ret=svcSendSyncRequest(context->servhandle)))return ret;
return cmdbuf[1];
}