X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fscreens.c;h=641b3a13abce20244b84e4a6aef735221892908c;hp=55aa0c22f855bd6abad91e51fcfd88a8353108d5;hb=bcb1d6118c2d3484e1881a78fd859562745aa553;hpb=b937b0928312ad4a51f45c16a0792a09ba914659 diff --git a/src/screens.c b/src/screens.c index 55aa0c22..641b3a13 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4111,6 +4111,62 @@ static void HandleResponse_ApiRenamePlayer(struct HttpResponse *response, // nothing to do here } +#if defined(PLATFORM_EMSCRIPTEN) +static void Emscripten_ApiRenamePlayer_Loaded(unsigned handle, void *data_raw, + void *buffer, unsigned int size) +{ + struct HttpResponse *response = GetHttpResponseFromBuffer(buffer, size); + + if (response != NULL) + { + HandleResponse_ApiRenamePlayer(response, data_raw); + + checked_free(response); + } + else + { + Error("server response too large to handle (%d bytes)", size); + } + + FreeThreadData_ApiRenamePlayer(data_raw); +} + +static void Emscripten_ApiRenamePlayer_Failed(unsigned handle, void *data_raw, + int code, const char *status) +{ + Error("server failed to handle request: %d %s", code, status); + + FreeThreadData_ApiRenamePlayer(data_raw); +} + +static void Emscripten_ApiRenamePlayer_Progress(unsigned handle, void *data_raw, + int bytes, int size) +{ + // nothing to do here +} + +static void Emscripten_ApiRenamePlayer_HttpRequest(struct HttpRequest *request, + void *data_raw) +{ + if (!SetRequest_ApiRenamePlayer(request, data_raw)) + { + FreeThreadData_ApiRenamePlayer(data_raw); + + return; + } + + emscripten_async_wget2_data(request->uri, + request->method, + request->body, + data_raw, + TRUE, + Emscripten_ApiRenamePlayer_Loaded, + Emscripten_ApiRenamePlayer_Failed, + Emscripten_ApiRenamePlayer_Progress); +} + +#else + static void ApiRenamePlayer_HttpRequestExt(struct HttpRequest *request, struct HttpResponse *response, void *data_raw) @@ -4145,13 +4201,18 @@ static void ApiRenamePlayer_HttpRequest(struct HttpRequest *request, FreeThreadData_ApiRenamePlayer(data_raw); } +#endif static int ApiRenamePlayerThread(void *data_raw) { struct HttpRequest *request = checked_calloc(sizeof(struct HttpRequest)); struct HttpResponse *response = checked_calloc(sizeof(struct HttpResponse)); +#if defined(PLATFORM_EMSCRIPTEN) + Emscripten_ApiRenamePlayer_HttpRequest(request, data_raw); +#else ApiRenamePlayer_HttpRequest(request, response, data_raw); +#endif checked_free(request); checked_free(response);