From 1aa88024cbf4720badb7b015c1f3a9be989eab70 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Mon, 27 Feb 2023 00:13:31 +0100 Subject: [PATCH] cloud-setup: make nm_http_client_req() accept a method argument We'll need to be able to issue PUT calls. Conflicts: variable alignments only (cherry picked from commit cd74d75002783a79d1a4fca24b2fbe99ced933a8) (cherry picked from commit eff4372045290ad380bddf03e5075ab671a7cff6) (cherry picked from commit aaf66e9174eb04d2df1f45530ebdca16e77a6ec5) (cherry picked from commit 3d94f4fdf9f7f1fef6e8ec77593e4d3506d144df) (cherry picked from commit 181466c6dae4251f49596afb7abfc291b9769769) (cherry picked from commit 7243307bb8e4369aef8b0a68d64c2a05c47b0d8a) --- src/nm-cloud-setup/nm-http-client.c | 7 +++++++ src/nm-cloud-setup/nm-http-client.h | 1 + src/nm-cloud-setup/nmcs-provider-aliyun.c | 6 ++++++ src/nm-cloud-setup/nmcs-provider-azure.c | 7 +++++++ src/nm-cloud-setup/nmcs-provider-ec2.c | 4 ++++ src/nm-cloud-setup/nmcs-provider-gcp.c | 5 +++++ 6 files changed, 30 insertions(+) diff --git a/src/nm-cloud-setup/nm-http-client.c b/src/nm-cloud-setup/nm-http-client.c index c5f56fc60e..8b74450025 100644 --- a/src/nm-cloud-setup/nm-http-client.c +++ b/src/nm-cloud-setup/nm-http-client.c @@ -262,6 +262,7 @@ nm_http_client_req(NMHttpClient * self, int timeout_msec, gssize max_data, const char *const * http_headers, + const char * http_method, GCancellable * cancellable, GAsyncReadyCallback callback, gpointer user_data) @@ -322,6 +323,9 @@ nm_http_client_req(NMHttpClient * self, curl_easy_setopt(edata->ehandle, CURLOPT_HTTPHEADER, edata->headers); } + if (http_method) + curl_easy_setopt(edata->ehandle, CURLOPT_CUSTOMREQUEST, http_method); + if (timeout_msec > 0) { edata->timeout_source = _source_attach(self, nm_g_timeout_source_new(timeout_msec, @@ -397,6 +401,7 @@ typedef struct { GTask * task; char * uri; const char *const * http_headers; + const char * http_method; NMHttpClientPollReqCheckFcn check_fcn; gpointer check_user_data; GBytes * response_data; @@ -434,6 +439,7 @@ _poll_req_probe_start_fcn(GCancellable * cancellable, poll_req_data->request_timeout_ms, poll_req_data->request_max_data, poll_req_data->http_headers, + poll_req_data->http_method, cancellable, callback, user_data); @@ -520,6 +526,7 @@ nm_http_client_poll_req(NMHttpClient * self, int poll_timeout_ms, int ratelimit_timeout_ms, const char *const * http_headers, + const char * http_method, GCancellable * cancellable, NMHttpClientPollReqCheckFcn check_fcn, gpointer check_user_data, diff --git a/src/nm-cloud-setup/nm-http-client.h b/src/nm-cloud-setup/nm-http-client.h index 7c524d259f..133ca0cea0 100644 --- a/src/nm-cloud-setup/nm-http-client.h +++ b/src/nm-cloud-setup/nm-http-client.h @@ -39,6 +39,7 @@ void nm_http_client_poll_req(NMHttpClient * self, int poll_timeout_ms, int ratelimit_timeout_ms, const char *const * http_headers, + const char * http_method, GCancellable * cancellable, NMHttpClientPollReqCheckFcn check_fcn, gpointer check_user_data, diff --git a/src/nm-cloud-setup/nmcs-provider-aliyun.c b/src/nm-cloud-setup/nmcs-provider-aliyun.c index 5a28fd1c29..0942817449 100644 --- a/src/nm-cloud-setup/nmcs-provider-aliyun.c +++ b/src/nm-cloud-setup/nmcs-provider-aliyun.c @@ -111,6 +111,7 @@ detect(NMCSProvider *provider, GTask *task) 7000, 1000, NULL, + NULL, g_task_get_cancellable(task), NULL, NULL, @@ -332,6 +333,7 @@ _get_config_metadata_ready_cb(GObject *source, GAsyncResult *result, gpointer us 10000, 1000, NULL, + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -349,6 +351,7 @@ _get_config_metadata_ready_cb(GObject *source, GAsyncResult *result, gpointer us 10000, 1000, NULL, + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -366,6 +369,7 @@ _get_config_metadata_ready_cb(GObject *source, GAsyncResult *result, gpointer us 10000, 1000, NULL, + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -383,6 +387,7 @@ _get_config_metadata_ready_cb(GObject *source, GAsyncResult *result, gpointer us 10000, 1000, NULL, + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -480,6 +485,7 @@ get_config(NMCSProvider *provider, NMCSProviderGetConfigTaskData *get_config_dat 15000, 1000, NULL, + NULL, get_config_data->intern_cancellable, _get_config_metadata_ready_check, get_config_data, diff --git a/src/nm-cloud-setup/nmcs-provider-azure.c b/src/nm-cloud-setup/nmcs-provider-azure.c index ad6045b903..11c9c53af2 100644 --- a/src/nm-cloud-setup/nmcs-provider-azure.c +++ b/src/nm-cloud-setup/nmcs-provider-azure.c @@ -76,6 +76,7 @@ detect(NMCSProvider *provider, GTask *task) 7000, 1000, NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + NULL, g_task_get_cancellable(task), NULL, NULL, @@ -294,6 +295,7 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u 10000, 1000, NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -316,6 +318,7 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u 10000, 1000, NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -333,6 +336,7 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u 10000, 1000, NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -415,6 +419,7 @@ _get_config_iface_cb(GObject *source, GAsyncResult *result, gpointer user_data) 10000, 1000, NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -515,6 +520,7 @@ _get_net_ifaces_list_cb(GObject *source, GAsyncResult *result, gpointer user_dat 10000, 1000, NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -538,6 +544,7 @@ get_config(NMCSProvider *provider, NMCSProviderGetConfigTaskData *get_config_dat 15000, 1000, NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, diff --git a/src/nm-cloud-setup/nmcs-provider-ec2.c b/src/nm-cloud-setup/nmcs-provider-ec2.c index 5c3b0c8b05..9fa7f6a125 100644 --- a/src/nm-cloud-setup/nmcs-provider-ec2.c +++ b/src/nm-cloud-setup/nmcs-provider-ec2.c @@ -106,6 +106,7 @@ detect(NMCSProvider *provider, GTask *task) 7000, 1000, NULL, + NULL, g_task_get_cancellable(task), _detect_get_meta_data_check_cb, NULL, @@ -267,6 +268,7 @@ _get_config_metadata_ready_cb(GObject *source, GAsyncResult *result, gpointer us 10000, 1000, NULL, + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -284,6 +286,7 @@ _get_config_metadata_ready_cb(GObject *source, GAsyncResult *result, gpointer us 10000, 1000, NULL, + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -381,6 +384,7 @@ get_config(NMCSProvider *provider, NMCSProviderGetConfigTaskData *get_config_dat 15000, 1000, NULL, + NULL, get_config_data->intern_cancellable, _get_config_metadata_ready_check, get_config_data, diff --git a/src/nm-cloud-setup/nmcs-provider-gcp.c b/src/nm-cloud-setup/nmcs-provider-gcp.c index efadaa2d9f..c9ad2121b3 100644 --- a/src/nm-cloud-setup/nmcs-provider-gcp.c +++ b/src/nm-cloud-setup/nmcs-provider-gcp.c @@ -79,6 +79,7 @@ detect(NMCSProvider *provider, GTask *task) 7000, 1000, NM_MAKE_STRV(NM_GCP_METADATA_HEADER), + NULL, g_task_get_cancellable(task), NULL, NULL, @@ -227,6 +228,7 @@ _get_config_ips_list_cb(GObject *source, GAsyncResult *result, gpointer user_dat HTTP_POLL_TIMEOUT_MS, HTTP_RATE_LIMIT_MS, NM_MAKE_STRV(NM_GCP_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -313,6 +315,7 @@ _get_config_iface_cb(GObject *source, GAsyncResult *result, gpointer user_data) HTTP_POLL_TIMEOUT_MS, HTTP_RATE_LIMIT_MS, NM_MAKE_STRV(NM_GCP_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -412,6 +415,7 @@ _get_net_ifaces_list_cb(GObject *source, GAsyncResult *result, gpointer user_dat HTTP_POLL_TIMEOUT_MS, HTTP_RATE_LIMIT_MS, NM_MAKE_STRV(NM_GCP_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -435,6 +439,7 @@ get_config(NMCSProvider *provider, NMCSProviderGetConfigTaskData *get_config_dat HTTP_POLL_TIMEOUT_MS, HTTP_RATE_LIMIT_MS, NM_MAKE_STRV(NM_GCP_METADATA_HEADER), + NULL, get_config_data->intern_cancellable, NULL, NULL,