diff --git a/src/core/libraries/network/http.cpp b/src/core/libraries/network/http.cpp index dbb5b096a..8b41fcc4d 100644 --- a/src/core/libraries/network/http.cpp +++ b/src/core/libraries/network/http.cpp @@ -842,9 +842,15 @@ int PS4_SYSV_ABI sceHttpUriUnescape(char* out, size_t* require, size_t prepare, return ORBIS_OK; } -int PS4_SYSV_ABI sceHttpWaitRequest() { - LOG_ERROR(Lib_Http, "(STUBBED) called"); - return ORBIS_OK; +int PS4_SYSV_ABI sceHttpWaitRequest(OrbisHttpEpollHandle *eh, OrbisHttpNBEvent* nbev, int maxevents, int timeout) { + LOG_INFO(Lib_Http, "waitRequest"); + if (!nbev) { + LOG_ERROR(Lib_Http, "invalid values"); + return ORBIS_HTTP_ERROR_INVALID_VALUE; + } + nbev->events = ORBIS_HTTP_NB_EVENT_SOCK_ERR; + nbev->id = 3; + return 1; } void RegisterlibSceHttp(Core::Loader::SymbolsResolver* sym) { diff --git a/src/core/libraries/network/http.h b/src/core/libraries/network/http.h index c687c60c4..aa02506c7 100644 --- a/src/core/libraries/network/http.h +++ b/src/core/libraries/network/http.h @@ -24,6 +24,15 @@ struct OrbisHttpUriElement { u8 reserved[10]; }; +typedef void* OrbisHttpEpollHandle; + +struct OrbisHttpNBEvent { + u32 events; + u32 eventDetail; + int id; + void* userArg; +}; + int PS4_SYSV_ABI sceHttpAbortRequest(); int PS4_SYSV_ABI sceHttpAbortRequestForce(); int PS4_SYSV_ABI sceHttpAbortWaitRequest(); @@ -139,7 +148,7 @@ int PS4_SYSV_ABI sceHttpUriParse(OrbisHttpUriElement* out, const char* srcUri, v size_t* require, size_t prepare); int PS4_SYSV_ABI sceHttpUriSweepPath(char* dst, const char* src, size_t srcSize); int PS4_SYSV_ABI sceHttpUriUnescape(char* out, size_t* require, size_t prepare, const char* in); -int PS4_SYSV_ABI sceHttpWaitRequest(); +int PS4_SYSV_ABI sceHttpWaitRequest(OrbisHttpEpollHandle *eh, OrbisHttpNBEvent* nbev, int maxevents, int timeout); void RegisterlibSceHttp(Core::Loader::SymbolsResolver* sym); } // namespace Libraries::Http diff --git a/src/core/libraries/network/http_error.h b/src/core/libraries/network/http_error.h index 49cc89766..dd1881469 100644 --- a/src/core/libraries/network/http_error.h +++ b/src/core/libraries/network/http_error.h @@ -64,3 +64,5 @@ constexpr int ORBIS_HTTPS_ERROR_SSL_CN_CHECK = 0x04; constexpr int ORBIS_HTTPS_ERROR_SSL_NOT_AFTER_CHECK = 0x08; constexpr int ORBIS_HTTPS_ERROR_SSL_NOT_BEFORE_CHECK = 0x10; constexpr int ORBIS_HTTPS_ERROR_SSL_UNKNOWN_CA = 0x20; + +constexpr u32 ORBIS_HTTP_NB_EVENT_SOCK_ERR = 0x08;