Skip to content

Commit 77efdb6

Browse files
committed
Better network memory management
1 parent e3b9015 commit 77efdb6

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

src/network.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ NETWORK_RESULT network_receive_buffer (network_data *data, const char *endpoint,
214214
return result;
215215
}
216216

217-
static size_t network_read_callback(char *buffer, size_t size, size_t nitems, void *userdata) {
217+
static size_t network_read_callback (char *buffer, size_t size, size_t nitems, void *userdata) {
218218
network_read_data *rd = (network_read_data *)userdata;
219219
size_t max_read = size * nitems;
220220
size_t bytes_left = rd->size - rd->read_pos;
@@ -228,7 +228,7 @@ static size_t network_read_callback(char *buffer, size_t size, size_t nitems, vo
228228
return to_copy;
229229
}
230230

231-
bool network_send_buffer(network_data *data, const char *endpoint, const char *authentication, const void *blob, int blob_size) {
231+
bool network_send_buffer (network_data *data, const char *endpoint, const char *authentication, const void *blob, int blob_size) {
232232
struct curl_slist *headers = NULL;
233233
curl_mime *mime = NULL;
234234
bool result = false;
@@ -322,8 +322,6 @@ int network_set_sqlite_result (sqlite3_context *context, NETWORK_RESULT *result)
322322
rc = (int)result->blen;
323323
break;
324324
}
325-
326-
network_result_cleanup(result);
327325
return rc;
328326
}
329327

@@ -342,28 +340,27 @@ int network_download_changes (sqlite3_context *context, const char *download_url
342340
int rc = SQLITE_OK;
343341
if (result.code == CLOUDSYNC_NETWORK_BUFFER) {
344342
rc = cloudsync_payload_apply(xdata, result.buffer, (int)result.blen, pnrows);
345-
network_result_cleanup(&result);
346343
} else {
347344
rc = network_set_sqlite_result(context, &result);
348345
if (pnrows) *pnrows = 0;
349346
}
347+
network_result_cleanup(&result);
350348

351349
return rc;
352350
}
353351

354-
char *network_authentication_token(const char *key, const char *value) {
352+
char *network_authentication_token (const char *key, const char *value) {
355353
size_t len = strlen(key) + strlen(value) + 64;
356354
char *buffer = cloudsync_memory_zeroalloc(len);
357355
if (!buffer) return NULL;
358356

359357
// build new token
360358
// we don't need a prefix because the token alreay include a prefix "sqa_"
361359
snprintf(buffer, len, "%s", value);
362-
363360
return buffer;
364361
}
365362

366-
int network_extract_query_param(const char *query, const char *key, char *output, size_t output_size) {
363+
int network_extract_query_param (const char *query, const char *key, char *output, size_t output_size) {
367364
if (!query || !key || !output || output_size == 0) {
368365
return -1; // Invalid input
369366
}
@@ -556,12 +553,11 @@ bool network_compute_endpoints (sqlite3_context *context, network_data *data, co
556553
void network_result_to_sqlite_error (sqlite3_context *context, NETWORK_RESULT res, const char *default_error_message) {
557554
sqlite3_result_error(context, ((res.code == CLOUDSYNC_NETWORK_ERROR) && (res.buffer)) ? res.buffer : default_error_message, -1);
558555
sqlite3_result_error_code(context, SQLITE_ERROR);
559-
network_result_cleanup(&res);
560556
}
561557

562558
// MARK: - Init / Cleanup -
563559

564-
network_data *cloudsync_network_data(sqlite3_context *context) {
560+
network_data *cloudsync_network_data (sqlite3_context *context) {
565561
cloudsync_context *xdata = (cloudsync_context *)sqlite3_user_data(context);
566562
network_data *data = (network_data *)cloudsync_auxdata(xdata);
567563
if (data) return data;
@@ -730,6 +726,7 @@ int cloudsync_network_send_changes_internal (sqlite3_context *context, int argc,
730726
if (res.code != CLOUDSYNC_NETWORK_BUFFER) {
731727
cloudsync_memory_free(blob);
732728
network_result_to_sqlite_error(context, res, "cloudsync_network_send_changes unable to receive upload URL");
729+
network_result_cleanup(&res);
733730
return SQLITE_ERROR;
734731
}
735732

@@ -801,6 +798,7 @@ int cloudsync_network_check_internal(sqlite3_context *context, int *pnrows) {
801798
rc = network_set_sqlite_result(context, &result);
802799
}
803800

801+
network_result_cleanup(&result);
804802
return rc;
805803
}
806804

0 commit comments

Comments
 (0)