ERASEABLE
float url_URI_Get_Callback(int id, float status, string data)
{
- if (id < MIN_URL_ID) return 0;
+ if (id < MIN_URL_ID) { return 0; }
id -= MIN_URL_ID;
- if (id >= NUM_URL_ID) return 0;
+ if (id >= NUM_URL_ID) { return 0; }
entity e;
e = url_fromid[id];
- if (!e) return 0;
- if (e.url_rbuf >= 0 || e.url_wbuf >= 0)
- {
+ if (!e) { return 0; }
+ if (e.url_rbuf >= 0 || e.url_wbuf >= 0) {
LOG_INFOF("WARNING: handle %d (%s) has already received data?!?", id + NUM_URL_ID, e.url_url);
return 0;
}
url_fromid[id] = NULL;
// if we get here, we MUST have both buffers cleared
- if (e.url_rbuf != -1 || e.url_wbuf != -1 || e.url_fh != URL_FH_CURL) error("url_URI_Get_Callback: not a request waiting for data");
+ if (e.url_rbuf != -1 || e.url_wbuf != -1 || e.url_fh != URL_FH_CURL) { error("url_URI_Get_Callback: not a request waiting for data"); }
- if (status == 0)
- {
+ if (status == 0) {
// WE GOT DATA!
float n, i;
n = tokenizebyseparator(data, "\n");
e.url_rbuf = buf_create();
- if (e.url_rbuf < 0)
- {
+ if (e.url_rbuf < 0) {
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);
return 1;
}
e.url_rbufpos = 0;
- if (e.url_rbuf < 0)
- {
+ if (e.url_rbuf < 0) {
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);
delete(e);
return 1;
}
- for (i = 0; i < n; ++i)
+ for (i = 0; i < n; ++i) {
bufstr_set(e.url_rbuf, i, argv(i));
+ }
e.url_ready(e, e.url_ready_pass, URL_READY_CANREAD);
return 1;
- }
- else
- {
+ } else {
// an ERROR
e.url_ready(e, e.url_ready_pass, -fabs(status));
strunzone(e.url_url);
{
entity e;
int i;
- if (strstrofs(url, "://", 0) >= 0)
- {
- switch (mode)
- {
+ if (strstrofs(url, "://", 0) >= 0) {
+ switch (mode) {
case FILE_WRITE:
case FILE_APPEND:
// collect data to a stringbuffer for a POST request
e.url_verb = "";
e.url_fh = URL_FH_CURL;
e.url_wbuf = buf_create();
- if (e.url_wbuf < 0)
- {
+ if (e.url_wbuf < 0) {
LOG_INFO("url_single_fopen: out of memory in buf_create");
rdy(e, pass, URL_READY_ERROR);
strunzone(e.url_url);
// read data only
// get slot for HTTP request
- for (i = autocvar__urllib_nextslot; i < NUM_URL_ID; ++i)
- if (url_fromid[i] == NULL) break;
- if (i >= NUM_URL_ID)
- {
- for (i = 0; i < autocvar__urllib_nextslot; ++i)
- if (url_fromid[i] == NULL) break;
- if (i >= autocvar__urllib_nextslot)
- {
+ for (i = autocvar__urllib_nextslot; i < NUM_URL_ID; ++i) {
+ if (url_fromid[i] == NULL) { break; } }
+ if (i >= NUM_URL_ID) {
+ for (i = 0; i < autocvar__urllib_nextslot; ++i) {
+ if (url_fromid[i] == NULL) { break; } }
+ if (i >= autocvar__urllib_nextslot) {
LOG_INFO("url_single_fopen: too many concurrent requests");
rdy(NULL, pass, URL_READY_ERROR);
return;
}
// GET the data
- if (!crypto_uri_postbuf(url, i + MIN_URL_ID, string_null, string_null, -1, 0))
- {
+ 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");
rdy(NULL, pass, URL_READY_ERROR);
return;
cvar_set("_urllib_nextslot", ftos((i + 1) % NUM_URL_ID));
break;
}
- }
- else if (url == "-")
- {
- switch (mode)
- {
+ } else if (url == "-") {
+ switch (mode) {
case FILE_WRITE:
case FILE_APPEND:
e = new_pure(url_single_fopen_stdout);
rdy(NULL, pass, URL_READY_ERROR);
break;
}
- }
- else
- {
+ } else {
float fh;
fh = fopen(url, mode);
- if (fh < 0)
- {
+ if (fh < 0) {
rdy(NULL, pass, URL_READY_ERROR);
return;
- }
- else
- {
+ } else {
e = new_pure(url_single_fopen_file);
e.url_fh = fh;
e.url_ready = rdy;
e.url_ready_pass = pass;
- if (mode == FILE_READ) rdy(e, pass, URL_READY_CANREAD);
- else rdy(e, pass, URL_READY_CANWRITE);
+ if (mode == FILE_READ) { rdy(e, pass, URL_READY_CANREAD); } else { rdy(e, pass, URL_READY_CANWRITE); }
}
}
}
{
int i;
- if (e.url_fh == URL_FH_CURL)
- {
- if (e.url_rbuf == -1 || e.url_wbuf != -1) // not(post GET/POST request)
- if (e.url_rbuf != -1 || e.url_wbuf == -1) // not(pre POST request)
+ if (e.url_fh == URL_FH_CURL) {
+ if (e.url_rbuf == -1 || e.url_wbuf != -1) { // not(post GET/POST request)
+ if (e.url_rbuf != -1 || e.url_wbuf == -1) { // not(pre POST request)
error("url_fclose: not closable in current state");
+ }
+ }
// closing an URL!
- if (e.url_wbuf >= 0)
- {
+ if (e.url_wbuf >= 0) {
// we are closing the write end (HTTP POST request)
// get slot for HTTP request
- for (i = autocvar__urllib_nextslot; i < NUM_URL_ID; ++i)
- if (url_fromid[i] == NULL) break;
- if (i >= NUM_URL_ID)
- {
- for (i = 0; i < autocvar__urllib_nextslot; ++i)
- if (url_fromid[i] == NULL) break;
- if (i >= autocvar__urllib_nextslot)
- {
+ for (i = autocvar__urllib_nextslot; i < NUM_URL_ID; ++i) {
+ if (url_fromid[i] == NULL) { break; } }
+ if (i >= NUM_URL_ID) {
+ for (i = 0; i < autocvar__urllib_nextslot; ++i) {
+ if (url_fromid[i] == NULL) { break; } }
+ if (i >= autocvar__urllib_nextslot) {
LOG_INFO("url_fclose: too many concurrent requests");
e.url_ready(e, e.url_ready_pass, URL_READY_ERROR);
buf_del(e.url_wbuf);
}
// 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))
- {
+ 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");
e.url_ready(e, e.url_ready_pass, URL_READY_ERROR);
buf_del(e.url_wbuf);
// make sure this slot won't be reused quickly even on map change
cvar_set("_urllib_nextslot", ftos((i + 1) % NUM_URL_ID));
- }
- else
- {
+ } else {
// 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);
delete(e);
}
- }
- else if (e.url_fh == URL_FH_STDOUT)
- {
- e.url_ready(e, e.url_ready_pass, URL_READY_CLOSED); // closing creates no reading handle
+ } else if (e.url_fh == URL_FH_STDOUT) {
+ e.url_ready(e, e.url_ready_pass, URL_READY_CLOSED); // closing creates no reading handle
delete(e);
- }
- else
- {
+ } else {
// file
fclose(e.url_fh);
- e.url_ready(e, e.url_ready_pass, URL_READY_CLOSED); // closing creates no reading handle
+ e.url_ready(e, e.url_ready_pass, URL_READY_CLOSED); // closing creates no reading handle
delete(e);
}
}
ERASEABLE
string url_fgets(entity e)
{
- if (e.url_fh == URL_FH_CURL)
- {
- if (e.url_rbuf == -1) error("url_fgets: not readable in current state");
+ if (e.url_fh == URL_FH_CURL) {
+ if (e.url_rbuf == -1) { error("url_fgets: not readable in current state"); }
// curl
string s;
s = bufstr_get(e.url_rbuf, e.url_rbufpos);
e.url_rbufpos += 1;
return s;
- }
- else if (e.url_fh == URL_FH_STDOUT)
- {
+ } else if (e.url_fh == URL_FH_STDOUT) {
// stdout
return string_null;
- }
- else
- {
+ } else {
// file
return fgets(e.url_fh);
}
ERASEABLE
void url_fputs(entity e, string s)
{
- if (e.url_fh == URL_FH_CURL)
- {
- if (e.url_wbuf == -1) error("url_fputs: not writable in current state");
+ if (e.url_fh == URL_FH_CURL) {
+ if (e.url_wbuf == -1) { error("url_fputs: not writable in current state"); }
// curl
bufstr_set(e.url_wbuf, e.url_wbufpos, s);
e.url_wbufpos += 1;
- }
- else if (e.url_fh == URL_FH_STDOUT)
- {
+ } else if (e.url_fh == URL_FH_STDOUT) {
// stdout
print(s);
- }
- else
- {
+ } else {
// file
fputs(e.url_fh, s);
}
void url_multi_ready(entity fh, entity me, float status)
{
float n;
- if (status == URL_READY_ERROR || status < 0)
- {
- if (status == -422) // Unprocessable Entity
- {
+ if (status == URL_READY_ERROR || status < 0) {
+ if (status == -422) { // Unprocessable Entity
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);
}
me.url_attempt += 1;
n = tokenize_console(me.url_url);
- if (n <= me.url_attempt)
- {
+ if (n <= me.url_attempt) {
me.url_ready(fh, me.url_ready_pass, status);
strunzone(me.url_url);
delete(me);
{
float n;
n = tokenize_console(url);
- if (n <= 0)
- {
+ if (n <= 0) {
LOG_INFO("url_multi_fopen: need at least one URL");
rdy(NULL, pass, URL_READY_ERROR);
return;