From 41ebfacea1dcc35c5b8c7e2bce80c3b3b4dcd717 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Thu, 6 Oct 2011 16:12:04 +0200 Subject: [PATCH] allow multiple playerstats URIs, separated by space TODO: should this maybe rather be in urllib? not sure --- qcsrc/server/playerstats.qc | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/qcsrc/server/playerstats.qc b/qcsrc/server/playerstats.qc index a2af63fe9..4a9dac388 100644 --- a/qcsrc/server/playerstats.qc +++ b/qcsrc/server/playerstats.qc @@ -3,8 +3,8 @@ string teamstats_last; string playerstats_last; string events_last; .float playerstats_addedglobalinfo; -float playerstats_requested; .string playerstats_id; +float playerstats_sendtry; void PlayerStats_Init() { @@ -198,6 +198,7 @@ void PlayerStats_ready(entity fh, entity pass, float status) string e, en; string nn, tt; string s; + float n; switch(status) { @@ -256,6 +257,15 @@ void PlayerStats_ready(entity fh, entity pass, float status) case URL_READY_ERROR: default: print("Player stats writing failed: ", ftos(status), "\n"); + ++playerstats_sendtry; + n = tokenize_console(autocvar_g_playerstats_uri); + if(playerstats_sendtry < n) + { + print("Trying next URL...\n"); + url_fopen(argv(playerstats_sendtry), FILE_APPEND, PlayerStats_ready, world); + return; + } + print("Failed permanently.\n"); playerstats_waitforme = TRUE; if(playerstats_db >= 0) { @@ -269,16 +279,17 @@ void PlayerStats_ready(entity fh, entity pass, float status) //#NO AUTOCVARS START void PlayerStats_Shutdown() { - string uri; + float n; if(playerstats_db < 0) return; - uri = autocvar_g_playerstats_uri; - if(uri != "") + playerstats_sendtry = 0; + n = tokenize_console(autocvar_g_playerstats_uri); + if(n > 0) { playerstats_waitforme = FALSE; - url_fopen(uri, FILE_APPEND, PlayerStats_ready, world); + url_fopen(argv(0), FILE_APPEND, PlayerStats_ready, world); } else { -- 2.39.2