X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Furllib.qc;h=2ad7bda2464b6842daa52fb70b2889c1835ab02c;hb=821a95136fb3a11f2094f61f2954ea5e8966a378;hp=8c8bcd16bc0d70ed0160dc4fd10ce35ab6ef4ed1;hpb=5c9dd3786d57cbbbca67043ba8076548c1d486ef;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/urllib.qc b/qcsrc/lib/urllib.qc index 8c8bcd16b..2ad7bda24 100644 --- a/qcsrc/lib/urllib.qc +++ b/qcsrc/lib/urllib.qc @@ -24,6 +24,7 @@ const float URL_FH_STDOUT = -2; entity url_fromid[NUM_URL_ID]; int autocvar__urllib_nextslot; +ERASEABLE float url_URI_Get_Callback(int id, float status, string data) { if (id < MIN_URL_ID) return 0; @@ -34,7 +35,7 @@ float url_URI_Get_Callback(int id, float status, string data) if (!e) return 0; if (e.url_rbuf >= 0 || e.url_wbuf >= 0) { - LOG_INFOF("WARNING: handle %d (%s) has already received data?!?\n", id + NUM_URL_ID, e.url_url); + LOG_INFOF("WARNING: handle %d (%s) has already received data?!?", id + NUM_URL_ID, e.url_url); return 0; } @@ -52,18 +53,18 @@ float url_URI_Get_Callback(int id, float status, string data) e.url_rbuf = buf_create(); if (e.url_rbuf < 0) { - LOG_INFO("url_URI_Get_Callback: out of memory in buf_create\n"); + LOG_INFO("url_URI_Get_Callback: out of memory in buf_create"); e.url_ready(e, e.url_ready_pass, URL_READY_ERROR); - strunzone(e.url_url); + strfree(e.url_url); delete(e); return 1; } e.url_rbufpos = 0; if (e.url_rbuf < 0) { - LOG_INFO("url_URI_Get_Callback: out of memory in buf_create\n"); + LOG_INFO("url_URI_Get_Callback: out of memory in buf_create"); e.url_ready(e, e.url_ready_pass, URL_READY_ERROR); - strunzone(e.url_url); + strfree(e.url_url); delete(e); return 1; } @@ -76,12 +77,13 @@ float url_URI_Get_Callback(int id, float status, string data) { // an ERROR e.url_ready(e, e.url_ready_pass, -fabs(status)); - strunzone(e.url_url); + strfree(e.url_url); delete(e); return 1; } } +ERASEABLE void url_single_fopen(string url, int mode, url_ready_func rdy, entity pass) { entity e; @@ -104,9 +106,9 @@ void url_single_fopen(string url, int mode, url_ready_func rdy, entity pass) e.url_wbuf = buf_create(); if (e.url_wbuf < 0) { - LOG_INFO("url_single_fopen: out of memory in buf_create\n"); + LOG_INFO("url_single_fopen: out of memory in buf_create"); rdy(e, pass, URL_READY_ERROR); - strunzone(e.url_url); + strfree(e.url_url); delete(e); return; } @@ -129,7 +131,7 @@ void url_single_fopen(string url, int mode, url_ready_func rdy, entity pass) if (url_fromid[i] == NULL) break; if (i >= autocvar__urllib_nextslot) { - LOG_INFO("url_single_fopen: too many concurrent requests\n"); + LOG_INFO("url_single_fopen: too many concurrent requests"); rdy(NULL, pass, URL_READY_ERROR); return; } @@ -138,7 +140,7 @@ void url_single_fopen(string url, int mode, url_ready_func rdy, entity pass) // GET the data if (!crypto_uri_postbuf(url, i + MIN_URL_ID, string_null, string_null, -1, 0)) { - LOG_INFO("url_single_fopen: failure in crypto_uri_postbuf\n"); + LOG_INFO("url_single_fopen: failure in crypto_uri_postbuf"); rdy(NULL, pass, URL_READY_ERROR); return; } @@ -174,7 +176,7 @@ void url_single_fopen(string url, int mode, url_ready_func rdy, entity pass) rdy(e, pass, URL_READY_CANWRITE); break; case FILE_READ: - LOG_INFO("url_single_fopen: cannot open '-' for reading\n"); + LOG_INFO("url_single_fopen: cannot open '-' for reading"); rdy(NULL, pass, URL_READY_ERROR); break; } @@ -201,6 +203,7 @@ void url_single_fopen(string url, int mode, url_ready_func rdy, entity pass) } // close a file +ERASEABLE void url_fclose(entity e) { int i; @@ -225,10 +228,10 @@ void url_fclose(entity e) if (url_fromid[i] == NULL) break; if (i >= autocvar__urllib_nextslot) { - LOG_INFO("url_fclose: too many concurrent requests\n"); + LOG_INFO("url_fclose: too many concurrent requests"); e.url_ready(e, e.url_ready_pass, URL_READY_ERROR); buf_del(e.url_wbuf); - strunzone(e.url_url); + strfree(e.url_url); delete(e); return; } @@ -237,10 +240,10 @@ void url_fclose(entity e) // POST the data if (!crypto_uri_postbuf(e.url_url, i + MIN_URL_ID, e.url_content_type, e.url_verb, e.url_wbuf, 0)) { - LOG_INFO("url_fclose: failure in crypto_uri_postbuf\n"); + LOG_INFO("url_fclose: failure in crypto_uri_postbuf"); e.url_ready(e, e.url_ready_pass, URL_READY_ERROR); buf_del(e.url_wbuf); - strunzone(e.url_url); + strfree(e.url_url); delete(e); return; } @@ -261,7 +264,7 @@ void url_fclose(entity e) // we have READ all data, just close e.url_ready(e, e.url_ready_pass, URL_READY_CLOSED); buf_del(e.url_rbuf); - strunzone(e.url_url); + strfree(e.url_url); delete(e); } } @@ -280,6 +283,7 @@ void url_fclose(entity e) } // with \n (blame FRIK_FILE) +ERASEABLE string url_fgets(entity e) { if (e.url_fh == URL_FH_CURL) @@ -304,6 +308,7 @@ string url_fgets(entity e) } // without \n (blame FRIK_FILE) +ERASEABLE void url_fputs(entity e, string s) { if (e.url_fh == URL_FH_CURL) @@ -316,7 +321,7 @@ void url_fputs(entity e, string s) else if (e.url_fh == URL_FH_STDOUT) { // stdout - LOG_INFO(s); + print(s); } else { @@ -326,6 +331,7 @@ void url_fputs(entity e, string s) } // multi URL object, tries URLs separated by space in sequence +ERASEABLE void url_multi_ready(entity fh, entity me, float status) { float n; @@ -333,9 +339,9 @@ void url_multi_ready(entity fh, entity me, float status) { if (status == -422) // Unprocessable Entity { - LOG_INFO("uri_multi_ready: got HTTP error 422, data is in unusable format - not continuing\n"); + LOG_INFO("uri_multi_ready: got HTTP error 422, data is in unusable format - not continuing"); me.url_ready(fh, me.url_ready_pass, status); - strunzone(me.url_url); + strfree(me.url_url); delete(me); return; } @@ -344,7 +350,7 @@ void url_multi_ready(entity fh, entity me, float status) if (n <= me.url_attempt) { me.url_ready(fh, me.url_ready_pass, status); - strunzone(me.url_url); + strfree(me.url_url); delete(me); return; } @@ -353,13 +359,15 @@ void url_multi_ready(entity fh, entity me, float status) } me.url_ready(fh, me.url_ready_pass, status); } + +ERASEABLE void url_multi_fopen(string url, int mode, url_ready_func rdy, entity pass) { float n; n = tokenize_console(url); if (n <= 0) { - LOG_INFO("url_multi_fopen: need at least one URL\n"); + LOG_INFO("url_multi_fopen: need at least one URL"); rdy(NULL, pass, URL_READY_ERROR); return; }