diff mbox series

[17/29] channel_curl: pass channel pointer to internal callbacks

Message ID 20211011112156.44192-18-sbabic@denx.de
State Changes Requested
Headers show
Series DELTA Update | expand

Commit Message

Stefano Babic Oct. 11, 2021, 11:21 a.m. UTC
Channel can be used by the callbacks to call curl functions that can be
evaluated later.

Signed-off-by: Stefano Babic <sbabic@denx.de>
---
 corelib/channel_curl.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/corelib/channel_curl.c b/corelib/channel_curl.c
index 9af9c39..abe252c 100644
--- a/corelib/channel_curl.c
+++ b/corelib/channel_curl.c
@@ -53,6 +53,7 @@  typedef struct {
 	channel_data_t *channel_data;
 	int output;
 	output_data_t *outdata;
+	channel_t *this;
 } write_callback_t;
 
 typedef struct {
@@ -940,7 +941,7 @@  static channel_op_res_t channel_post_method(channel_t *this, void *data, int met
 	channel_op_res_t result = CHANNEL_OK;
 	channel_data_t *channel_data = (channel_data_t *)data;
 	output_data_t outdata = {};
-	write_callback_t wrdata = { .channel_data = channel_data, .outdata = &outdata };
+	write_callback_t wrdata = { .this = this, .channel_data = channel_data, .outdata = &outdata };
 
 	if ((result = channel_set_content_type(this, channel_data)) !=
 	    CHANNEL_OK) {
@@ -1153,7 +1154,7 @@  channel_op_res_t channel_get_file(channel_t *this, void *data)
 		goto cleanup_header;
 	}
 
-	write_callback_t wrdata;
+	write_callback_t wrdata = { .this = this };
 	wrdata.channel_data = channel_data;
 	if (!channel_data->noipc) {
 		swupdate_prepare_req(&req);
@@ -1343,7 +1344,7 @@  channel_op_res_t channel_get(channel_t *this, void *data)
 	channel_data_t *channel_data = (channel_data_t *)data;
 	channel_data->http_response_code = 0;
 	output_data_t outdata = {};
-	write_callback_t wrdata = { .channel_data = channel_data, .outdata = &outdata };
+	write_callback_t wrdata = { .this = this, .channel_data = channel_data, .outdata = &outdata };
 
 	if ((result = channel_set_content_type(this, channel_data)) !=
 	    CHANNEL_OK) {