From 59b5a8fdcb8c1dd33f9fd43ee9492aeaf8b1c186 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, missing nmcs-provider-aliyun (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) (cherry picked from commit 1aa88024cbf4720badb7b015c1f3a9be989eab70) --- clients/cloud-setup/nm-http-client.c | 7 +++++++ clients/cloud-setup/nm-http-client.h | 1 + clients/cloud-setup/nmcs-provider-azure.c | 7 +++++++ clients/cloud-setup/nmcs-provider-ec2.c | 4 ++++ clients/cloud-setup/nmcs-provider-gcp.c | 5 +++++ 5 files changed, 24 insertions(+) diff --git a/clients/cloud-setup/nm-http-client.c b/clients/cloud-setup/nm-http-client.c index a64422ac90..a104823ecc 100644 --- a/clients/cloud-setup/nm-http-client.c +++ b/clients/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/clients/cloud-setup/nm-http-client.h b/clients/cloud-setup/nm-http-client.h index 7c524d259f..133ca0cea0 100644 --- a/clients/cloud-setup/nm-http-client.h +++ b/clients/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/clients/cloud-setup/nmcs-provider-azure.c b/clients/cloud-setup/nmcs-provider-azure.c index d843de9ff9..614e5e4ada 100644 --- a/clients/cloud-setup/nmcs-provider-azure.c +++ b/clients/cloud-setup/nmcs-provider-azure.c @@ -84,6 +84,7 @@ detect(NMCSProvider *provider, GTask *task) 7000, 1000, NM_MAKE_STRV(NM_AZURE_METADATA_HEADER), + NULL, g_task_get_cancellable(task), NULL, NULL, @@ -302,6 +303,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, @@ -324,6 +326,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, @@ -341,6 +344,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, @@ -423,6 +427,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, @@ -523,6 +528,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, @@ -546,6 +552,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/clients/cloud-setup/nmcs-provider-ec2.c b/clients/cloud-setup/nmcs-provider-ec2.c index b02fed7aad..858a8bc310 100644 --- a/clients/cloud-setup/nmcs-provider-ec2.c +++ b/clients/cloud-setup/nmcs-provider-ec2.c @@ -120,6 +120,7 @@ detect(NMCSProvider *provider, GTask *task) 7000, 1000, NULL, + NULL, g_task_get_cancellable(task), _detect_get_meta_data_check_cb, NULL, @@ -281,6 +282,7 @@ _get_config_metadata_ready_cb(GObject *source, GAsyncResult *result, gpointer us 10000, 1000, NULL, + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -298,6 +300,7 @@ _get_config_metadata_ready_cb(GObject *source, GAsyncResult *result, gpointer us 10000, 1000, NULL, + NULL, get_config_data->intern_cancellable, NULL, NULL, @@ -395,6 +398,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/clients/cloud-setup/nmcs-provider-gcp.c b/clients/cloud-setup/nmcs-provider-gcp.c index a74d78f10c..d2446bdc56 100644 --- a/clients/cloud-setup/nmcs-provider-gcp.c +++ b/clients/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,