249 lines
5.8 KiB
C++
249 lines
5.8 KiB
C++
#include <cstdint>
|
|
#include <cstddef>
|
|
#include "SceTypes.hpp"
|
|
#include "prx/libc/include/General.hpp"
|
|
#include "prx/libSceHttp/src/HttpErrors.hpp"
|
|
#include <atomic>
|
|
|
|
// No network is emulated: contexts, templates and requests can be created, but any request
|
|
// that would touch the network fails with the library's network error.
|
|
static std::atomic<int> g_nextHandle{1};
|
|
|
|
extern "C" {
|
|
|
|
int APS5_VABI sceHttpAbortRequest(int request_id) {
|
|
(void)request_id;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpAddRequestHeader(int id, const char* name, const char* value, uint32_t mode) {
|
|
(void)id;
|
|
(void)name;
|
|
(void)value;
|
|
(void)mode;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpCreateConnection(int tmpl_id, const char* server_name, const char* scheme, uint16_t port, int enable_keep_alive) {
|
|
(void)tmpl_id;
|
|
(void)server_name;
|
|
(void)scheme;
|
|
(void)port;
|
|
(void)enable_keep_alive;
|
|
return g_nextHandle.fetch_add(1, std::memory_order_relaxed);
|
|
}
|
|
|
|
int APS5_VABI sceHttpCreateConnectionWithURL(int tmpl_id, const char* url, int enable_keep_alive) {
|
|
(void)tmpl_id;
|
|
(void)url;
|
|
(void)enable_keep_alive;
|
|
return g_nextHandle.fetch_add(1, std::memory_order_relaxed);
|
|
}
|
|
|
|
int APS5_VABI sceHttpCreateEpoll(int http_ctx_id, HttpEpollHandle* eh) {
|
|
(void)http_ctx_id;
|
|
if (!eh) return ERROR_INVALID_VALUE;
|
|
*eh = new HttpEpoll{};
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpCreateRequest(int conn_id, int method, const char* path, uint64_t content_length) {
|
|
(void)conn_id;
|
|
(void)method;
|
|
(void)path;
|
|
(void)content_length;
|
|
return g_nextHandle.fetch_add(1, std::memory_order_relaxed);
|
|
}
|
|
|
|
int APS5_VABI sceHttpCreateRequestWithURL2(int conn_id, const char* method, const char* url, uint64_t content_length) {
|
|
(void)conn_id;
|
|
(void)method;
|
|
(void)url;
|
|
(void)content_length;
|
|
return g_nextHandle.fetch_add(1, std::memory_order_relaxed);
|
|
}
|
|
|
|
int APS5_VABI sceHttpCreateTemplate(int http_ctx_id, const char* user_agent, int http_ver, int is_auto_proxy_conf) {
|
|
(void)http_ctx_id;
|
|
(void)user_agent;
|
|
(void)http_ver;
|
|
(void)is_auto_proxy_conf;
|
|
return g_nextHandle.fetch_add(1, std::memory_order_relaxed);
|
|
}
|
|
|
|
int APS5_VABI sceHttpDeleteConnection(int conn_id) {
|
|
(void)conn_id;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpDeleteRequest(int req_id) {
|
|
(void)req_id;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpDeleteTemplate(int tmpl_id) {
|
|
(void)tmpl_id;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpDestroyEpoll(int http_ctx_id, HttpEpollHandle eh) {
|
|
(void)http_ctx_id;
|
|
delete eh;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpGetAllResponseHeaders(int request_id, char** header, size_t* header_size) {
|
|
(void)request_id;
|
|
(void)header;
|
|
(void)header_size;
|
|
return ERROR_NETWORK;
|
|
}
|
|
|
|
int APS5_VABI sceHttpGetResponseContentLength(int request_id, int* result, uint64_t* content_length) {
|
|
(void)request_id;
|
|
(void)result;
|
|
(void)content_length;
|
|
return ERROR_NETWORK;
|
|
}
|
|
|
|
int APS5_VABI sceHttpGetStatusCode(int request_id, int* status_code) {
|
|
(void)request_id;
|
|
(void)status_code;
|
|
return ERROR_NETWORK;
|
|
}
|
|
|
|
int APS5_VABI sceHttpInit_nid_postfix(int memid, int ssl_ctx_id, uint64_t pool_size) {
|
|
(void)memid;
|
|
(void)ssl_ctx_id;
|
|
(void)pool_size;
|
|
return g_nextHandle.fetch_add(1, std::memory_order_relaxed);
|
|
}
|
|
|
|
int APS5_VABI sceHttpsDisableOption(int id, uint32_t ssl_flags) {
|
|
(void)id;
|
|
(void)ssl_flags;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSendRequest(int request_id, const void* post_data, size_t size) {
|
|
(void)request_id;
|
|
(void)post_data;
|
|
(void)size;
|
|
return ERROR_NETWORK;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetAuthEnabled(int id, int enable) {
|
|
(void)id;
|
|
(void)enable;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetAutoRedirect(int id, int enable) {
|
|
(void)id;
|
|
(void)enable;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetConnectTimeOut(int id, uint32_t usec) {
|
|
(void)id;
|
|
(void)usec;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetEpoll(int id, HttpEpollHandle eh, void* user_arg) {
|
|
(void)id;
|
|
(void)eh;
|
|
(void)user_arg;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetNonblock(int id, int enable) {
|
|
(void)id;
|
|
(void)enable;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetRecvTimeOut(int id, uint32_t usec) {
|
|
(void)id;
|
|
(void)usec;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetRequestContentLength(int request_id, uint64_t content_length) {
|
|
(void)request_id;
|
|
(void)content_length;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetResolveRetry(int id, int32_t retry) {
|
|
(void)id;
|
|
(void)retry;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetResolveTimeOut(int id, uint32_t usec) {
|
|
(void)id;
|
|
(void)usec;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetSendTimeOut(int id, uint32_t usec) {
|
|
(void)id;
|
|
(void)usec;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpsSetMinSslVersion(int id, uint32_t ssl_version) {
|
|
(void)id;
|
|
(void)ssl_version;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpsSetSslCallback(int id, HttpsCallback cbfunc, void* user_arg) {
|
|
(void)id;
|
|
(void)cbfunc;
|
|
(void)user_arg;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpTerm_nid_postfix(int http_ctx_id) {
|
|
(void)http_ctx_id;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpUnsetEpoll(int id) {
|
|
(void)id;
|
|
return 0;
|
|
}
|
|
|
|
int APS5_VABI sceHttpWaitRequest(HttpEpollHandle eh, HttpNBEvent* nbev, int maxevents, int timeout) {
|
|
(void)eh;
|
|
(void)nbev;
|
|
(void)maxevents;
|
|
(void)timeout;
|
|
return ERROR_NETWORK;
|
|
}
|
|
|
|
int APS5_VABI sceHttpCreateRequestWithURL(int conn_id, int method, const char* url, uint64_t content_length) {
|
|
(void)conn_id;
|
|
(void)method;
|
|
(void)url;
|
|
(void)content_length;
|
|
return g_nextHandle.fetch_add(1, std::memory_order_relaxed);
|
|
}
|
|
|
|
int APS5_VABI sceHttpReadData(int request_id, void* data, size_t size) {
|
|
(void)request_id;
|
|
(void)data;
|
|
(void)size;
|
|
return ERROR_NETWORK;
|
|
}
|
|
|
|
int APS5_VABI sceHttpSetChunkedTransferEnabled(int id, int enable) {
|
|
(void)id;
|
|
(void)enable;
|
|
return 0;
|
|
}
|
|
|
|
}
|