X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=bb7a2b5b3399f9598d48763873fa065488723fc4;hb=9e18c7b845bf154f0b1a4603ad907aa20c3b3e90;hp=61aff99a31f99a07bc1ee51cecde52bc81e07640;hpb=df4d152e1d4bd75c59ba9ce469a7b308ec718905;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 61aff99a..bb7a2b5b 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4042,11 +4042,40 @@ void HandleInfoScreen(int mx, int my, int dx, int dy, int button) // change name functions // ============================================================================ +struct ApiRenamePlayerThreadData +{ + char *player_name; + char *player_uuid; +}; + +static void *CreateThreadData_ApiRenamePlayer(void) +{ + struct ApiRenamePlayerThreadData *data = + checked_malloc(sizeof(struct ApiRenamePlayerThreadData)); + + data->player_name = getStringCopy(setup.player_name); + data->player_uuid = getStringCopy(setup.player_uuid); + + return data; +} + +static void FreeThreadData_ApiRenamePlayer(void *data_raw) +{ + struct ApiRenamePlayerThreadData *data = data_raw; + + checked_free(data->player_name); + checked_free(data->player_uuid); + checked_free(data); +} + static void ApiRenamePlayerExt(struct HttpRequest *request, struct HttpResponse *response, - char *player_name_raw, - char *player_uuid_raw) + void *data_raw) { + struct ApiRenamePlayerThreadData *data = data_raw; + char *player_name_raw = data->player_name; + char *player_uuid_raw = data->player_uuid; + request->hostname = setup.api_server_hostname; request->port = API_SERVER_PORT; request->method = API_SERVER_METHOD; @@ -4091,32 +4120,17 @@ static void ApiRenamePlayerExt(struct HttpRequest *request, } } -static void ApiRenamePlayer(char *player_name, char *player_uuid) +static int ApiRenamePlayerThread(void *data_raw) { struct HttpRequest *request = checked_calloc(sizeof(struct HttpRequest)); struct HttpResponse *response = checked_calloc(sizeof(struct HttpResponse)); - ApiRenamePlayerExt(request, response, player_name, player_uuid); + ApiRenamePlayerExt(request, response, data_raw); + + FreeThreadData_ApiRenamePlayer(data_raw); checked_free(request); checked_free(response); -} - -struct ApiRenamePlayerThreadData -{ - char *player_name; - char *player_uuid; -}; - -static int ApiRenamePlayerThread(void *data_raw) -{ - struct ApiRenamePlayerThreadData *data = data_raw; - - ApiRenamePlayer(data->player_name, data->player_uuid); - - checked_free(data->player_name); - checked_free(data->player_uuid); - checked_free(data); return 0; } @@ -4124,10 +4138,7 @@ static int ApiRenamePlayerThread(void *data_raw) static void ApiRenamePlayerAsThread(void) { struct ApiRenamePlayerThreadData *data = - checked_malloc(sizeof(struct ApiRenamePlayerThreadData)); - - data->player_name = getStringCopy(setup.player_name); - data->player_uuid = getStringCopy(setup.player_uuid); + CreateThreadData_ApiRenamePlayer(); ExecuteAsThread(ApiRenamePlayerThread, "ApiRenamePlayer", data,