From 00dcb26cd6993104cb2d255487df7e9d754d0e94 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Mon, 11 May 2020 14:38:31 +0200 Subject: mbimcli: port to use g_auto() helpers --- src/mbimcli/mbimcli-atds.c | 50 +- src/mbimcli/mbimcli-basic-connect.c | 735 +++++++--------------- src/mbimcli/mbimcli-dss.c | 61 +- src/mbimcli/mbimcli-helpers.c | 130 ++-- src/mbimcli/mbimcli-intel-firmware-update.c | 15 +- src/mbimcli/mbimcli-ms-basic-connect-extensions.c | 79 +-- src/mbimcli/mbimcli-ms-firmware-id.c | 25 +- src/mbimcli/mbimcli-ms-host-shutdown.c | 13 +- src/mbimcli/mbimcli-phonebook.c | 89 +-- src/mbimcli/mbimcli.c | 16 +- 10 files changed, 400 insertions(+), 813 deletions(-) diff --git a/src/mbimcli/mbimcli-atds.c b/src/mbimcli/mbimcli-atds.c index 04e93f3..cc26fe8 100644 --- a/src/mbimcli/mbimcli-atds.c +++ b/src/mbimcli/mbimcli-atds.c @@ -116,23 +116,20 @@ static void query_signal_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autofree gchar *rssi_str = NULL; + g_autofree gchar *error_rate_str = NULL; + g_autofree gchar *rscp_str = NULL; + g_autofree gchar *ecno_str = NULL; + g_autofree gchar *rsrq_str = NULL; + g_autofree gchar *rsrp_str = NULL; + g_autofree gchar *rssnr_str = NULL; guint32 rssi = 0, error_rate = 0, rscp = 0, ecno = 0, rsrq = 0, rsrp = 0, rssnr = 0; - gchar *rssi_str = NULL; - gchar *error_rate_str = NULL; - gchar *rscp_str = NULL; - gchar *ecno_str = NULL; - gchar *rsrq_str = NULL; - gchar *rsrp_str = NULL; - gchar *rssnr_str = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -148,8 +145,6 @@ query_signal_ready (MbimDevice *device, &rssnr, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -239,15 +234,6 @@ query_signal_ready (MbimDevice *device, VALIDATE_UNKNOWN (rsrp_str), VALIDATE_UNKNOWN (rssnr_str)); - g_free (rssi_str); - g_free (error_rate_str); - g_free (rscp_str); - g_free (ecno_str); - g_free (rsrq_str); - g_free (rsrp_str); - g_free (rssnr_str); - - mbim_message_unref (response); shutdown (TRUE); } @@ -255,16 +241,13 @@ static void query_location_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; guint32 lac = 0, tac = 0, cellid = 0; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -276,8 +259,6 @@ query_location_ready (MbimDevice *device, &cellid, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -291,7 +272,6 @@ query_location_ready (MbimDevice *device, tac, cellid); - mbim_message_unref (response); shutdown (TRUE); } @@ -299,6 +279,8 @@ void mbimcli_atds_run (MbimDevice *device, GCancellable *cancellable) { + g_autoptr(MbimMessage) request = NULL; + /* Initialize context */ ctx = g_slice_new (Context); ctx->device = g_object_ref (device); @@ -306,8 +288,6 @@ mbimcli_atds_run (MbimDevice *device, /* Request to get signal info? */ if (query_signal_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying signal info..."); request = (mbim_message_atds_signal_query_new (NULL)); mbim_device_command (ctx->device, @@ -316,14 +296,11 @@ mbimcli_atds_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_signal_ready, NULL); - mbim_message_unref (request); return; } /* Request to get cell location? */ if (query_location_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying cell location..."); request = (mbim_message_atds_location_query_new (NULL)); mbim_device_command (ctx->device, @@ -332,7 +309,6 @@ mbimcli_atds_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_location_ready, NULL); - mbim_message_unref (request); return; } diff --git a/src/mbimcli/mbimcli-basic-connect.c b/src/mbimcli/mbimcli-basic-connect.c index c41d4a8..285b094 100644 --- a/src/mbimcli/mbimcli-basic-connect.c +++ b/src/mbimcli/mbimcli-basic-connect.c @@ -335,34 +335,31 @@ static void query_device_caps_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimDeviceType device_type; - const gchar *device_type_str; - MbimCellularClass cellular_class; - gchar *cellular_class_str; - MbimVoiceClass voice_class; - const gchar *voice_class_str; - MbimSimClass sim_class; - gchar *sim_class_str; - MbimDataClass data_class; - gchar *data_class_str; - MbimSmsCaps sms_caps; - gchar *sms_caps_str; - MbimCtrlCaps ctrl_caps; - gchar *ctrl_caps_str; - guint32 max_sessions; - gchar *custom_data_class; - gchar *device_id; - gchar *firmware_info; - gchar *hardware_info; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + MbimDeviceType device_type; + const gchar *device_type_str; + MbimVoiceClass voice_class; + const gchar *voice_class_str; + MbimCellularClass cellular_class; + g_autofree gchar *cellular_class_str = NULL; + MbimSimClass sim_class; + g_autofree gchar *sim_class_str = NULL; + MbimDataClass data_class; + g_autofree gchar *data_class_str = NULL; + MbimSmsCaps sms_caps; + g_autofree gchar *sms_caps_str = NULL; + MbimCtrlCaps ctrl_caps; + g_autofree gchar *ctrl_caps_str = NULL; + guint32 max_sessions; + g_autofree gchar *custom_data_class = NULL; + g_autofree gchar *device_id = NULL; + g_autofree gchar *firmware_info = NULL; + g_autofree gchar *hardware_info = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -383,19 +380,17 @@ query_device_caps_ready (MbimDevice *device, &hardware_info, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } - device_type_str = mbim_device_type_get_string (device_type); + device_type_str = mbim_device_type_get_string (device_type); cellular_class_str = mbim_cellular_class_build_string_from_mask (cellular_class); - voice_class_str = mbim_voice_class_get_string (voice_class); - sim_class_str = mbim_sim_class_build_string_from_mask (sim_class); - data_class_str = mbim_data_class_build_string_from_mask (data_class); - sms_caps_str = mbim_sms_caps_build_string_from_mask (sms_caps); - ctrl_caps_str = mbim_ctrl_caps_build_string_from_mask (ctrl_caps); + voice_class_str = mbim_voice_class_get_string (voice_class); + sim_class_str = mbim_sim_class_build_string_from_mask (sim_class); + data_class_str = mbim_data_class_build_string_from_mask (data_class); + sms_caps_str = mbim_sms_caps_build_string_from_mask (sms_caps); + ctrl_caps_str = mbim_ctrl_caps_build_string_from_mask (ctrl_caps); g_print ("[%s] Device capabilities retrieved:\n" "\t Device type: '%s'\n" @@ -424,17 +419,6 @@ query_device_caps_ready (MbimDevice *device, VALIDATE_UNKNOWN (firmware_info), VALIDATE_UNKNOWN (hardware_info)); - g_free (cellular_class_str); - g_free (sim_class_str); - g_free (data_class_str); - g_free (sms_caps_str); - g_free (ctrl_caps_str); - g_free (custom_data_class); - g_free (device_id); - g_free (firmware_info); - g_free (hardware_info); - - mbim_message_unref (response); shutdown (TRUE); } @@ -442,24 +426,21 @@ static void query_subscriber_ready_status_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimSubscriberReadyState ready_state; - const gchar *ready_state_str; - gchar *subscriber_id; - gchar *sim_iccid; - MbimReadyInfoFlag ready_info; - gchar *ready_info_str; - guint32 telephone_numbers_count; - gchar **telephone_numbers; - gchar *telephone_numbers_str; + g_autoptr (MbimMessage) response = NULL; + g_autoptr (GError) error = NULL; + MbimSubscriberReadyState ready_state; + const gchar *ready_state_str; + g_autofree gchar *subscriber_id = NULL; + g_autofree gchar *sim_iccid = NULL; + MbimReadyInfoFlag ready_info; + g_autofree gchar *ready_info_str = NULL; + guint32 telephone_numbers_count; + g_auto(GStrv) telephone_numbers = NULL; + g_autofree gchar *telephone_numbers_str = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -474,8 +455,6 @@ query_subscriber_ready_status_ready (MbimDevice *device, &telephone_numbers, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -497,13 +476,6 @@ query_subscriber_ready_status_ready (MbimDevice *device, VALIDATE_UNKNOWN (ready_info_str), telephone_numbers_count, VALIDATE_UNKNOWN (telephone_numbers_str)); - g_free (subscriber_id); - g_free (sim_iccid); - g_free (ready_info_str); - g_strfreev (telephone_numbers); - g_free (telephone_numbers_str); - - mbim_message_unref (response); shutdown (TRUE); } @@ -511,19 +483,16 @@ static void query_radio_state_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimRadioSwitchState hardware_radio_state; - const gchar *hardware_radio_state_str; - MbimRadioSwitchState software_radio_state; - const gchar *software_radio_state_str; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + MbimRadioSwitchState hardware_radio_state; + const gchar *hardware_radio_state_str; + MbimRadioSwitchState software_radio_state; + const gchar *software_radio_state_str; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -534,8 +503,6 @@ query_radio_state_ready (MbimDevice *device, &software_radio_state, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -550,7 +517,6 @@ query_radio_state_ready (MbimDevice *device, VALIDATE_UNKNOWN (hardware_radio_state_str), VALIDATE_UNKNOWN (software_radio_state_str)); - mbim_message_unref (response); shutdown (TRUE); } @@ -558,18 +524,15 @@ static void query_device_services_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimDeviceServiceElement **device_services; - guint32 device_services_count; - guint32 max_dss_sessions; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimDeviceServiceElementArray) device_services = NULL; + guint32 device_services_count; + guint32 max_dss_sessions; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -581,9 +544,6 @@ query_device_services_ready (MbimDevice *device, &device_services, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); - shutdown (FALSE); return; } @@ -598,10 +558,10 @@ query_device_services_ready (MbimDevice *device, g_print ("\t Services: (%u)\n", device_services_count); for (i = 0; i < device_services_count; i++) { - MbimService service; - gchar *uuid_str; - GString *cids; - guint32 j; + MbimService service; + g_autofree gchar *uuid_str = NULL; + g_autoptr(GString) cids = NULL; + guint32 j; service = mbim_uuid_to_service (&device_services[i]->device_service_id); uuid_str = mbim_uuid_get_printable (&device_services[i]->device_service_id); @@ -633,36 +593,27 @@ query_device_services_ready (MbimDevice *device, device_services[i]->dss_payload, device_services[i]->max_dss_instances, cids->str); - - g_string_free (cids, TRUE); - g_free (uuid_str); } } - mbim_device_service_element_array_free (device_services); - - mbim_message_unref (response); shutdown (TRUE); } static void pin_ready (MbimDevice *device, GAsyncResult *res, - gpointer user_data) + gpointer user_data) { - MbimMessage *response; - GError *error = NULL; - MbimPinType pin_type; - MbimPinState pin_state; - const gchar *pin_state_str; - guint32 remaining_attempts; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + MbimPinType pin_type; + MbimPinState pin_state; + const gchar *pin_state_str; + guint32 remaining_attempts; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -674,8 +625,6 @@ pin_ready (MbimDevice *device, &remaining_attempts, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -700,7 +649,6 @@ pin_ready (MbimDevice *device, remaining_attempts); } - mbim_message_unref (response); shutdown (TRUE); } @@ -710,7 +658,7 @@ set_pin_input_parse (guint n_expected, gchar **pin, gchar **new_pin) { - gchar **split; + g_auto(GStrv) split = NULL; g_assert (n_expected == 1 || n_expected == 2); g_assert (pin != NULL); @@ -725,20 +673,16 @@ set_pin_input_parse (guint n_expected, if (g_strv_length (split) > n_expected) { g_printerr ("error: couldn't parse input string, too many arguments\n"); - g_strfreev (split); return FALSE; } if (g_strv_length (split) < n_expected) { g_printerr ("error: couldn't parse input string, missing arguments\n"); - g_strfreev (split); return FALSE; } *pin = g_strdup (split[0]); *new_pin = g_strdup (split[1]); - - g_strfreev (split); return TRUE; } @@ -749,7 +693,7 @@ enum { }; static void -print_pin_desc (const gchar *pin_name, +print_pin_desc (const gchar *pin_name, const MbimPinDesc *pin_desc) { g_print ("\t%s:\n" @@ -766,29 +710,26 @@ print_pin_desc (const gchar *pin_name, } static void -pin_list_ready (MbimDevice *device, +pin_list_ready (MbimDevice *device, GAsyncResult *res, - gpointer user_data) + gpointer user_data) { - MbimMessage *response; - GError *error = NULL; - MbimPinDesc *pin_desc_pin1; - MbimPinDesc *pin_desc_pin2; - MbimPinDesc *pin_desc_device_sim_pin; - MbimPinDesc *pin_desc_device_first_sim_pin; - MbimPinDesc *pin_desc_network_pin; - MbimPinDesc *pin_desc_network_subset_pin; - MbimPinDesc *pin_desc_service_provider_pin; - MbimPinDesc *pin_desc_corporate_pin; - MbimPinDesc *pin_desc_subsidy_lock; - MbimPinDesc *pin_desc_custom; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimPinDesc) pin_desc_pin1 = NULL; + g_autoptr(MbimPinDesc) pin_desc_pin2 = NULL; + g_autoptr(MbimPinDesc) pin_desc_device_sim_pin = NULL; + g_autoptr(MbimPinDesc) pin_desc_device_first_sim_pin = NULL; + g_autoptr(MbimPinDesc) pin_desc_network_pin = NULL; + g_autoptr(MbimPinDesc) pin_desc_network_subset_pin = NULL; + g_autoptr(MbimPinDesc) pin_desc_service_provider_pin = NULL; + g_autoptr(MbimPinDesc) pin_desc_corporate_pin = NULL; + g_autoptr(MbimPinDesc) pin_desc_subsidy_lock = NULL; + g_autoptr(MbimPinDesc) pin_desc_custom = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -807,8 +748,6 @@ pin_list_ready (MbimDevice *device, &pin_desc_custom, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -827,29 +766,16 @@ pin_list_ready (MbimDevice *device, print_pin_desc ("Subsidy lock", pin_desc_subsidy_lock); print_pin_desc ("Custom", pin_desc_custom); - mbim_pin_desc_free (pin_desc_pin1); - mbim_pin_desc_free (pin_desc_pin2); - mbim_pin_desc_free (pin_desc_device_sim_pin); - mbim_pin_desc_free (pin_desc_device_first_sim_pin); - mbim_pin_desc_free (pin_desc_network_pin); - mbim_pin_desc_free (pin_desc_network_subset_pin); - mbim_pin_desc_free (pin_desc_service_provider_pin); - mbim_pin_desc_free (pin_desc_corporate_pin); - mbim_pin_desc_free (pin_desc_subsidy_lock); - mbim_pin_desc_free (pin_desc_custom); - - mbim_message_unref (response); shutdown (TRUE); } static void -ip_configuration_query_ready (MbimDevice *device, - GAsyncResult *res, - gpointer unused) +ip_configuration_query_ready (MbimDevice *device, + GAsyncResult *res) { - GError *error = NULL; - MbimMessage *response; - gboolean success = FALSE; + g_autoptr(GError) error = NULL; + g_autoptr(MbimMessage) response; + gboolean success = FALSE; response = mbim_device_command_finish (device, res, &error); if (!response || @@ -861,19 +787,16 @@ ip_configuration_query_ready (MbimDevice *device, g_printerr ("error: couldn't parse IP configuration response message: %s\n", error->message); } - g_clear_error (&error); - if (response) - mbim_message_unref (response); shutdown (success); } static void -ip_configuration_query (MbimDevice *device, +ip_configuration_query (MbimDevice *device, GCancellable *cancellable, - guint32 session_id) + guint32 session_id) { - MbimMessage *message; - GError *error = NULL; + g_autoptr(MbimMessage) message = NULL; + g_autoptr(GError) error = NULL; message = (mbim_message_ip_configuration_query_new ( session_id, @@ -894,7 +817,6 @@ ip_configuration_query (MbimDevice *device, &error)); if (!message) { g_printerr ("error: couldn't create IP config request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -905,29 +827,25 @@ ip_configuration_query (MbimDevice *device, cancellable, (GAsyncReadyCallback)ip_configuration_query_ready, NULL); - mbim_message_unref (message); } static void connect_ready (MbimDevice *device, GAsyncResult *res, - gpointer user_data) + gpointer user_data) { - MbimMessage *response; - GError *error = NULL; - guint32 session_id; - MbimActivationState activation_state; - MbimVoiceCallState voice_call_state; - MbimContextIpType ip_type; - const MbimUuid *context_type; - guint32 nw_error; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + guint32 session_id; + MbimActivationState activation_state; + MbimVoiceCallState voice_call_state; + MbimContextIpType ip_type; + const MbimUuid *context_type; + guint32 nw_error; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -942,12 +860,9 @@ connect_ready (MbimDevice *device, &nw_error, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } - mbim_message_unref (response); switch (GPOINTER_TO_UINT (user_data)) { case CONNECT: @@ -986,22 +901,19 @@ connect_ready (MbimDevice *device, } static void -ip_packet_filters_ready (MbimDevice *device, - GAsyncResult *res, - gpointer unused) +ip_packet_filters_ready (MbimDevice *device, + GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimPacketFilter **filters; - guint32 filters_count, i; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimPacketFilterArray) filters = NULL; + guint32 filters_count; + guint32 i; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1013,8 +925,6 @@ ip_packet_filters_ready (MbimDevice *device, &filters, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1022,23 +932,18 @@ ip_packet_filters_ready (MbimDevice *device, g_print ("\n[%s] IP packet filters: (%u)\n", mbim_device_get_path_display (device), filters_count); for (i = 0; i < filters_count; i++) { - gchar *bytes; + g_autofree gchar *packet_filter = NULL; + g_autofree gchar *packet_mask = NULL; + + packet_filter = mbim_common_str_hex (filters[i]->packet_filter, filters[i]->filter_size, ' '); + packet_mask = mbim_common_str_hex (filters[i]->packet_mask, filters[i]->filter_size, ' '); g_print ("\n"); g_print ("\tFilter size: %u\n", filters[i]->filter_size); - - bytes = mbim_common_str_hex (filters[i]->packet_filter, filters[i]->filter_size, ' '); - g_print ("\tPacket filter: %s\n", VALIDATE_UNKNOWN (bytes)); - g_free (bytes); - - bytes = mbim_common_str_hex (filters[i]->packet_mask, filters[i]->filter_size, ' '); - g_print ("\tPacket mask: %s\n", VALIDATE_UNKNOWN (bytes)); - g_free (bytes); + g_print ("\tPacket filter: %s\n", VALIDATE_UNKNOWN (packet_filter)); + g_print ("\tPacket mask: %s\n", VALIDATE_UNKNOWN (packet_mask)); } - mbim_packet_filter_array_free (filters); - - mbim_message_unref (response); shutdown (TRUE); } @@ -1049,10 +954,12 @@ mbim_auth_protocol_from_string (const gchar *str, if (g_ascii_strcasecmp (str, "PAP") == 0) { *auth_protocol = MBIM_AUTH_PROTOCOL_PAP; return TRUE; - } else if (g_ascii_strcasecmp (str, "CHAP") == 0) { + } + if (g_ascii_strcasecmp (str, "CHAP") == 0) { *auth_protocol = MBIM_AUTH_PROTOCOL_CHAP; return TRUE; - } else if (g_ascii_strcasecmp (str, "MSCHAPV2") == 0) { + } + if (g_ascii_strcasecmp (str, "MSCHAPV2") == 0) { *auth_protocol = MBIM_AUTH_PROTOCOL_MSCHAPV2; return TRUE; } @@ -1067,10 +974,12 @@ mbim_context_ip_type_from_string (const gchar *str, if (g_ascii_strcasecmp (str, "ipv4") == 0) { *ip_type = MBIM_CONTEXT_IP_TYPE_IPV4; return TRUE; - } else if (g_ascii_strcasecmp (str, "ipv6") == 0) { + } + if (g_ascii_strcasecmp (str, "ipv6") == 0) { *ip_type = MBIM_CONTEXT_IP_TYPE_IPV6; return TRUE; - } else if (g_ascii_strcasecmp (str, "ipv4v6") == 0) { + } + if (g_ascii_strcasecmp (str, "ipv4v6") == 0) { *ip_type = MBIM_CONTEXT_IP_TYPE_IPV4V6; return TRUE; } @@ -1126,10 +1035,21 @@ typedef struct { MbimContextIpType ip_type; } ConnectActivateProperties; -static gboolean connect_activate_properties_handle (const gchar *key, - const gchar *value, - GError **error, - gpointer user_data) +static void +connect_activate_properties_clear (ConnectActivateProperties *props) +{ + g_free (props->apn); + g_free (props->username); + g_free (props->password); +} + +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(ConnectActivateProperties, connect_activate_properties_clear); + +static gboolean +connect_activate_properties_handle (const gchar *key, + const gchar *value, + GError **error, + gpointer user_data) { ConnectActivateProperties *props = user_data; @@ -1191,7 +1111,7 @@ set_connect_activate_parse (const gchar *str, gchar **password, MbimContextIpType *ip_type) { - ConnectActivateProperties props = { + g_auto(ConnectActivateProperties) props = { .session_id = 0, .apn = NULL, .auth_protocol = MBIM_AUTH_PROTOCOL_NONE, @@ -1199,7 +1119,8 @@ set_connect_activate_parse (const gchar *str, .password = NULL, .ip_type = MBIM_CONTEXT_IP_TYPE_DEFAULT }; - gchar **split = NULL; + g_auto(GStrv) split = NULL; + g_autoptr(GError) error = NULL; g_assert (session_id != NULL); g_assert (apn != NULL); @@ -1209,16 +1130,13 @@ set_connect_activate_parse (const gchar *str, g_assert (ip_type != NULL); if (strchr (str, '=')) { - GError *error = NULL; - /* New key=value format */ if (!mbimcli_parse_key_value_string (str, &error, connect_activate_properties_handle, &props)) { g_printerr ("error: couldn't parse input string: %s\n", error->message); - g_error_free (error); - goto error; + return FALSE; } } else { /* Old non key=value format, like this: @@ -1228,7 +1146,7 @@ set_connect_activate_parse (const gchar *str, if (g_strv_length (split) > 4) { g_printerr ("error: couldn't parse input string, too many arguments\n"); - goto error; + return FALSE; } if (g_strv_length (split) > 0) { @@ -1239,7 +1157,7 @@ set_connect_activate_parse (const gchar *str, if (split[1]) { if (!mbim_auth_protocol_from_string (split[1], &props.auth_protocol)) { g_printerr ("error: couldn't parse input string, unknown auth protocol '%s'\n", split[1]); - goto error; + return FALSE; } /* Username */ if (split[2]) { @@ -1254,63 +1172,44 @@ set_connect_activate_parse (const gchar *str, if (props.auth_protocol == MBIM_AUTH_PROTOCOL_NONE) { if (props.username || props.password) { g_printerr ("error: username or password requires an auth protocol\n"); - goto error; + return FALSE; } } else { if (!props.username) { g_printerr ("error: auth protocol requires a username\n"); - goto error; + return FALSE; } } - *session_id = props.session_id; - *apn = props.apn; + *session_id = props.session_id; + *apn = g_steal_pointer (&props.apn); *auth_protocol = props.auth_protocol; - *username = props.username; - *password = props.password; - *ip_type = props.ip_type; - - if (split) - g_strfreev (split); + *username = g_steal_pointer (&props.username); + *password = g_steal_pointer (&props.password); + *ip_type = props.ip_type; return TRUE; - -error: - if (split) - g_strfreev (split); - g_free (props.apn); - g_free (props.username); - g_free (props.password); - return FALSE; } static void home_provider_ready (MbimDevice *device, - GAsyncResult *res, - gpointer user_data) + GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimProvider *provider; - gchar *provider_state_str; - gchar *cellular_class_str; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimProvider) provider = NULL; + g_autofree gchar *provider_state_str = NULL; + g_autofree gchar *cellular_class_str = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } - if (!mbim_message_home_provider_response_parse (response, - &provider, - &error)) { + if (!mbim_message_home_provider_response_parse (response, &provider, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1333,57 +1232,40 @@ home_provider_ready (MbimDevice *device, provider->rssi, provider->error_rate); - g_free (cellular_class_str); - g_free (provider_state_str); - - mbim_provider_free (provider); - mbim_message_unref (response); shutdown (TRUE); } static void preferred_providers_ready (MbimDevice *device, - GAsyncResult *res, - gpointer user_data) + GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimProvider **providers; - guint n_providers; - guint i; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimProviderArray) providers = NULL; + guint n_providers; + guint i; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } - if (!mbim_message_preferred_providers_response_parse (response, - &n_providers, - &providers, - &error)) { + if (!mbim_message_preferred_providers_response_parse (response, &n_providers, &providers, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } if (!n_providers) - g_print ("[%s] No preferred providers given\n", - mbim_device_get_path_display (device)); + g_print ("[%s] No preferred providers given\n", mbim_device_get_path_display (device)); else - g_print ("[%s] Preferred providers (%u):\n", - mbim_device_get_path_display (device), - n_providers); + g_print ("[%s] Preferred providers (%u):\n", mbim_device_get_path_display (device), n_providers); for (i = 0; i < n_providers; i++) { - gchar *provider_state_str; - gchar *cellular_class_str; + g_autofree gchar *provider_state_str = NULL; + g_autofree gchar *cellular_class_str = NULL; provider_state_str = mbim_provider_state_build_string_from_mask (providers[i]->provider_state); cellular_class_str = mbim_cellular_class_build_string_from_mask (providers[i]->cellular_class); @@ -1402,59 +1284,42 @@ preferred_providers_ready (MbimDevice *device, VALIDATE_UNKNOWN (cellular_class_str), providers[i]->rssi, providers[i]->error_rate); - - g_free (cellular_class_str); - g_free (provider_state_str); } - mbim_provider_array_free (providers); - mbim_message_unref (response); shutdown (TRUE); } static void visible_providers_ready (MbimDevice *device, - GAsyncResult *res, - gpointer user_data) + GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimProvider **providers; - guint n_providers; - guint i; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimProviderArray) providers = NULL; + guint n_providers; + guint i; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } - if (!mbim_message_visible_providers_response_parse (response, - &n_providers, - &providers, - &error)) { + if (!mbim_message_visible_providers_response_parse (response, &n_providers, &providers, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } if (!n_providers) - g_print ("[%s] No visible providers given\n", - mbim_device_get_path_display (device)); + g_print ("[%s] No visible providers given\n", mbim_device_get_path_display (device)); else - g_print ("[%s] Visible providers (%u):\n", - mbim_device_get_path_display (device), - n_providers); + g_print ("[%s] Visible providers (%u):\n", mbim_device_get_path_display (device), n_providers); for (i = 0; i < n_providers; i++) { - gchar *provider_state_str; - gchar *cellular_class_str; + g_autofree gchar *provider_state_str = NULL; + g_autofree gchar *cellular_class_str = NULL; provider_state_str = mbim_provider_state_build_string_from_mask (providers[i]->provider_state); cellular_class_str = mbim_cellular_class_build_string_from_mask (providers[i]->cellular_class); @@ -1473,42 +1338,34 @@ visible_providers_ready (MbimDevice *device, VALIDATE_UNKNOWN (cellular_class_str), providers[i]->rssi, providers[i]->error_rate); - - g_free (cellular_class_str); - g_free (provider_state_str); } - mbim_provider_array_free (providers); - mbim_message_unref (response); shutdown (TRUE); } static void register_state_ready (MbimDevice *device, GAsyncResult *res, - gpointer user_data) + gpointer user_data) { - MbimMessage *response; - GError *error = NULL; - MbimNwError nw_error; - MbimRegisterState register_state; - MbimRegisterMode register_mode; - MbimDataClass available_data_classes; - gchar *available_data_classes_str; - MbimCellularClass cellular_class; - gchar *cellular_class_str; - gchar *provider_id; - gchar *provider_name; - gchar *roaming_text; - MbimRegistrationFlag registration_flag; - gchar *registration_flag_str; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + MbimNwError nw_error; + MbimRegisterState register_state; + MbimRegisterMode register_mode; + MbimDataClass available_data_classes; + g_autofree gchar *available_data_classes_str = NULL; + MbimCellularClass cellular_class; + g_autofree gchar *cellular_class_str = NULL; + g_autofree gchar *provider_id = NULL; + g_autofree gchar *provider_name = NULL; + g_autofree gchar *roaming_text = NULL; + MbimRegistrationFlag registration_flag; + g_autofree gchar *registration_flag_str = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1525,8 +1382,6 @@ register_state_ready (MbimDevice *device, ®istration_flag, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1536,8 +1391,8 @@ register_state_ready (MbimDevice *device, mbim_device_get_path_display (device)); available_data_classes_str = mbim_data_class_build_string_from_mask (available_data_classes); - cellular_class_str = mbim_cellular_class_build_string_from_mask (cellular_class); - registration_flag_str = mbim_registration_flag_build_string_from_mask (registration_flag); + cellular_class_str = mbim_cellular_class_build_string_from_mask (cellular_class); + registration_flag_str = mbim_registration_flag_build_string_from_mask (registration_flag); g_print ("[%s] Registration status:\n" "\t Network error: '%s'\n" @@ -1560,36 +1415,24 @@ register_state_ready (MbimDevice *device, VALIDATE_UNKNOWN (roaming_text), VALIDATE_UNKNOWN (registration_flag_str)); - g_free (available_data_classes_str); - g_free (cellular_class_str); - g_free (registration_flag_str); - g_free (provider_name); - g_free (provider_id); - g_free (roaming_text); - - mbim_message_unref (response); shutdown (TRUE); } static void signal_state_ready (MbimDevice *device, - GAsyncResult *res, - gpointer user_data) + GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - guint32 rssi; - guint32 error_rate; - guint32 signal_strength_interval; - guint32 rssi_threshold; - guint32 error_rate_threshold; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + guint32 rssi; + guint32 error_rate; + guint32 signal_strength_interval; + guint32 rssi_threshold; + guint32 error_rate_threshold; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1602,8 +1445,6 @@ signal_state_ready (MbimDevice *device, &error_rate_threshold, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1624,7 +1465,6 @@ signal_state_ready (MbimDevice *device, else g_print ("\t Error rate threshold: '%u'\n", error_rate_threshold); - mbim_message_unref (response); shutdown (TRUE); } @@ -1637,23 +1477,20 @@ enum { static void packet_service_ready (MbimDevice *device, GAsyncResult *res, - gpointer user_data) + gpointer user_data) { - MbimMessage *response; - GError *error = NULL; - guint32 nw_error; - MbimPacketServiceState packet_service_state; - MbimDataClass highest_available_data_class; - gchar *highest_available_data_class_str; - guint64 uplink_speed; - guint64 downlink_speed; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + guint32 nw_error; + MbimPacketServiceState packet_service_state; + MbimDataClass highest_available_data_class; + g_autofree gchar *highest_available_data_class_str = NULL; + guint64 uplink_speed; + guint64 downlink_speed; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1666,8 +1503,6 @@ packet_service_ready (MbimDevice *device, &downlink_speed, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1700,9 +1535,6 @@ packet_service_ready (MbimDevice *device, uplink_speed, downlink_speed); - g_free (highest_available_data_class_str); - - mbim_message_unref (response); shutdown (TRUE); } @@ -1710,23 +1542,20 @@ static void packet_statistics_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - guint32 in_discards; - guint32 in_errors; - guint64 in_octets; - guint64 in_packets; - guint64 out_octets; - guint64 out_packets; - guint32 out_errors; - guint32 out_discards; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + guint32 in_discards; + guint32 in_errors; + guint64 in_octets; + guint64 in_packets; + guint64 out_octets; + guint64 out_packets; + guint32 out_errors; + guint32 out_discards; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1742,8 +1571,6 @@ packet_statistics_ready (MbimDevice *device, &out_discards, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1767,7 +1594,6 @@ packet_statistics_ready (MbimDevice *device, out_discards, out_errors); - mbim_message_unref (response); shutdown (TRUE); } @@ -1775,18 +1601,15 @@ static void provisioned_contexts_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - MbimProvisionedContextElement **provisioned_contexts; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(MbimProvisionedContextElementArray) provisioned_contexts = NULL; + g_autoptr(GError) error = NULL; guint32 provisioned_contexts_count; - guint i; - GError *error = NULL; + guint i; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1797,8 +1620,6 @@ provisioned_contexts_ready (MbimDevice *device, &provisioned_contexts, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -1827,9 +1648,6 @@ provisioned_contexts_ready (MbimDevice *device, provisioned_contexts[i]->auth_protocol))); } - mbim_provisioned_context_element_array_free (provisioned_contexts); - - mbim_message_unref (response); shutdown (TRUE); } @@ -1837,6 +1655,9 @@ void mbimcli_basic_connect_run (MbimDevice *device, GCancellable *cancellable) { + g_autoptr(MbimMessage) request = NULL; + g_autoptr(GError) error = NULL; + /* Initialize context */ ctx = g_slice_new (Context); ctx->device = g_object_ref (device); @@ -1844,8 +1665,6 @@ mbimcli_basic_connect_run (MbimDevice *device, /* Request to get capabilities? */ if (query_device_caps_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying device capabilities..."); request = (mbim_message_device_caps_query_new (NULL)); mbim_device_command (ctx->device, @@ -1854,14 +1673,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_device_caps_ready, NULL); - mbim_message_unref (request); return; } /* Request to get subscriber ready status? */ if (query_subscriber_ready_status_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying subscriber ready status..."); request = (mbim_message_subscriber_ready_status_query_new (NULL)); mbim_device_command (ctx->device, @@ -1870,14 +1686,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_subscriber_ready_status_ready, NULL); - mbim_message_unref (request); return; } /* Request to get radio state? */ if (query_radio_state_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying radio state..."); request = (mbim_message_radio_state_query_new (NULL)); mbim_device_command (ctx->device, @@ -1886,13 +1699,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_radio_state_ready, NULL); - mbim_message_unref (request); return; } /* Request to set radio state? */ if (set_radio_state_str) { - MbimMessage *request; MbimRadioSwitchState radio_state; if (g_ascii_strcasecmp (set_radio_state_str, "on") == 0) { @@ -1914,14 +1725,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_radio_state_ready, NULL); - mbim_message_unref (request); return; } /* Request to query device services? */ if (query_device_services_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying device services..."); request = (mbim_message_device_services_query_new (NULL)); mbim_device_command (ctx->device, @@ -1930,14 +1738,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_device_services_ready, NULL); - mbim_message_unref (request); return; } /* Query PIN state? */ if (query_pin_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying PIN state..."); request = (mbim_message_pin_query_new (NULL)); mbim_device_command (ctx->device, @@ -1946,7 +1751,6 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)pin_ready, GUINT_TO_POINTER (FALSE)); - mbim_message_unref (request); return; } @@ -1956,14 +1760,12 @@ mbimcli_basic_connect_run (MbimDevice *device, set_pin_enable_str || set_pin_disable_str || set_pin_enter_puk_str) { - MbimMessage *request; - guint n_expected; - MbimPinType pin_type; - MbimPinOperation pin_operation; - gchar *pin; - gchar *new_pin; - const gchar *input = NULL; - GError *error = NULL; + guint n_expected; + MbimPinType pin_type; + MbimPinOperation pin_operation; + g_autofree gchar *pin = NULL; + g_autofree gchar *new_pin = NULL; + const gchar *input = NULL; if (set_pin_enter_puk_str) { g_debug ("Asynchronously entering PUK..."); @@ -2007,12 +1809,8 @@ mbimcli_basic_connect_run (MbimDevice *device, pin, new_pin, &error)); - g_free (pin); - g_free (new_pin); - if (!request) { g_printerr ("error: couldn't create request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2023,14 +1821,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)pin_ready, GUINT_TO_POINTER (TRUE)); - mbim_message_unref (request); return; } /* Query PIN list? */ if (query_pin_list_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying PIN list..."); request = (mbim_message_pin_list_query_new (NULL)); mbim_device_command (ctx->device, @@ -2039,14 +1834,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)pin_list_ready, GUINT_TO_POINTER (FALSE)); - mbim_message_unref (request); return; } /* Query home provider? */ if (query_home_provider_flag) { - MbimMessage *request; - request = mbim_message_home_provider_query_new (NULL); mbim_device_command (ctx->device, request, @@ -2054,14 +1846,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)home_provider_ready, NULL); - mbim_message_unref (request); return; } /* Query preferred providers? */ if (query_preferred_providers_flag) { - MbimMessage *request; - request = mbim_message_preferred_providers_query_new (NULL); mbim_device_command (ctx->device, request, @@ -2069,14 +1858,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)preferred_providers_ready, NULL); - mbim_message_unref (request); return; } /* Query visible providers? */ if (query_visible_providers_flag) { - MbimMessage *request; - request = mbim_message_visible_providers_query_new (MBIM_VISIBLE_PROVIDERS_ACTION_FULL_SCAN, NULL); mbim_device_command (ctx->device, request, @@ -2084,14 +1870,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)visible_providers_ready, NULL); - mbim_message_unref (request); return; } /* Query registration status? */ if (query_register_state_flag) { - MbimMessage *request; - request = mbim_message_register_state_query_new (NULL); mbim_device_command (ctx->device, request, @@ -2099,22 +1882,17 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)register_state_ready, GUINT_TO_POINTER (FALSE)); - mbim_message_unref (request); return; } /* Launch automatic registration? */ if (set_register_state_automatic_flag) { - MbimMessage *request; - GError *error = NULL; - request = mbim_message_register_state_set_new (NULL, MBIM_REGISTER_ACTION_AUTOMATIC, 0, &error); if (!request) { g_printerr ("error: couldn't create request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2125,14 +1903,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)register_state_ready, GUINT_TO_POINTER (TRUE)); - mbim_message_unref (request); return; } /* Query signal status? */ if (query_signal_state_flag) { - MbimMessage *request; - request = mbim_message_signal_state_query_new (NULL); mbim_device_command (ctx->device, request, @@ -2140,14 +1915,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)signal_state_ready, NULL); - mbim_message_unref (request); return; } /* Query packet service status? */ if (query_packet_service_flag) { - MbimMessage *request; - request = mbim_message_packet_service_query_new (NULL); mbim_device_command (ctx->device, request, @@ -2155,16 +1927,13 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)packet_service_ready, GUINT_TO_POINTER (PACKET_SERVICE_STATUS)); - mbim_message_unref (request); return; } /* Launch packet attach or detach? */ if (set_packet_service_attach_flag || set_packet_service_detach_flag) { - MbimMessage *request; MbimPacketServiceAction action; - GError *error = NULL; if (set_packet_service_attach_flag) action = MBIM_PACKET_SERVICE_ACTION_ATTACH; @@ -2176,7 +1945,6 @@ mbimcli_basic_connect_run (MbimDevice *device, request = mbim_message_packet_service_set_new (action, &error); if (!request) { g_printerr ("error: couldn't create request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2189,19 +1957,15 @@ mbimcli_basic_connect_run (MbimDevice *device, GUINT_TO_POINTER (set_packet_service_attach_flag ? PACKET_SERVICE_ATTACH : PACKET_SERVICE_DETACH)); - mbim_message_unref (request); return; } /* Query connection status? */ if (query_connect_str) { - MbimMessage *request; - GError *error = NULL; guint32 session_id = 0; if (!connect_session_id_parse (query_connect_str, TRUE, &session_id, &error)) { g_printerr ("error: couldn't parse session ID: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2215,7 +1979,6 @@ mbimcli_basic_connect_run (MbimDevice *device, &error); if (!request) { g_printerr ("error: couldn't create request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2226,20 +1989,17 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)connect_ready, GUINT_TO_POINTER (CONNECTION_STATUS)); - mbim_message_unref (request); return; } /* Connect? */ if (set_connect_activate_str) { - MbimMessage *request; - GError *error = NULL; - guint32 session_id = 0; - gchar *apn; - MbimAuthProtocol auth_protocol; - gchar *username = NULL; - gchar *password = NULL; - MbimContextIpType ip_type = MBIM_CONTEXT_IP_TYPE_DEFAULT; + guint32 session_id = 0; + g_autofree gchar *apn = NULL; + MbimAuthProtocol auth_protocol; + g_autofree gchar *username = NULL; + g_autofree gchar *password = NULL; + MbimContextIpType ip_type = MBIM_CONTEXT_IP_TYPE_DEFAULT; if (!set_connect_activate_parse (set_connect_activate_str, &session_id, @@ -2262,13 +2022,9 @@ mbimcli_basic_connect_run (MbimDevice *device, ip_type, mbim_uuid_from_context_type (MBIM_CONTEXT_TYPE_INTERNET), &error); - g_free (apn); - g_free (username); - g_free (password); if (!request) { g_printerr ("error: couldn't create request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2279,18 +2035,15 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)connect_ready, GUINT_TO_POINTER (CONNECT)); - mbim_message_unref (request); return; } /* Query IP configuration? */ if (query_ip_configuration_str) { - GError *error = NULL; guint32 session_id = 0; if (!connect_session_id_parse (query_ip_configuration_str, TRUE, &session_id, &error)) { g_printerr ("error: couldn't parse session ID: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2301,13 +2054,10 @@ mbimcli_basic_connect_run (MbimDevice *device, /* Disconnect? */ if (set_connect_deactivate_str) { - MbimMessage *request; - GError *error = NULL; guint32 session_id = 0; if (!connect_session_id_parse (set_connect_deactivate_str, TRUE, &session_id, &error)) { g_printerr ("error: couldn't parse session ID: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2324,7 +2074,6 @@ mbimcli_basic_connect_run (MbimDevice *device, &error); if (!request) { g_printerr ("error: couldn't create request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2335,14 +2084,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)connect_ready, GUINT_TO_POINTER (DISCONNECT)); - mbim_message_unref (request); return; } /* Packet statistics? */ if (query_packet_statistics_flag) { - MbimMessage *request; - request = mbim_message_packet_statistics_query_new (NULL); mbim_device_command (ctx->device, request, @@ -2350,19 +2096,15 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)packet_statistics_ready, NULL); - mbim_message_unref (request); return; } /* Query IP packet filters? */ if (query_ip_packet_filters_str) { - MbimMessage *request; - GError *error = NULL; guint32 session_id = 0; if (!connect_session_id_parse (query_ip_packet_filters_str, TRUE, &session_id, &error)) { g_printerr ("error: couldn't parse session ID: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2374,7 +2116,6 @@ mbimcli_basic_connect_run (MbimDevice *device, &error)); if (!request) { g_printerr ("error: couldn't create IP packet filters request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -2385,14 +2126,11 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)ip_packet_filters_ready, NULL); - mbim_message_unref (request); return; } /* Provisioned contexts? */ if (query_provisioned_contexts_flag) { - MbimMessage *request; - request = mbim_message_provisioned_contexts_query_new (NULL); mbim_device_command (ctx->device, request, @@ -2400,7 +2138,6 @@ mbimcli_basic_connect_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)provisioned_contexts_ready, NULL); - mbim_message_unref (request); return; } diff --git a/src/mbimcli/mbimcli-dss.c b/src/mbimcli/mbimcli-dss.c index 74aa86e..531a095 100644 --- a/src/mbimcli/mbimcli-dss.c +++ b/src/mbimcli/mbimcli-dss.c @@ -36,15 +36,15 @@ /* Context */ typedef struct { - MbimDevice *device; + MbimDevice *device; GCancellable *cancellable; - guint32 session_id; + guint32 session_id; } Context; static Context *ctx; /* Options */ -static gchar *connect_str; -static gchar *disconnect_str; +static gchar *connect_str; +static gchar *disconnect_str; static GOptionEntry entries[] = { { "dss-connect", 0, 0, G_OPTION_ARG_STRING, &connect_str, @@ -121,13 +121,12 @@ enum { }; static void -ip_configuration_query_ready (MbimDevice *device, - GAsyncResult *res, - gpointer unused) +ip_configuration_query_ready (MbimDevice *device, + GAsyncResult *res) { - GError *error = NULL; - MbimMessage *response; - gboolean success = FALSE; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + gboolean success = FALSE; response = mbim_device_command_finish (device, res, &error); if (!response || @@ -139,50 +138,40 @@ ip_configuration_query_ready (MbimDevice *device, g_printerr ("error: couldn't parse IP configuration response message: %s\n", error->message); } - g_clear_error (&error); - if (response) - mbim_message_unref (response); shutdown (success); } static void -set_dss_ready (MbimDevice *device, +set_dss_ready (MbimDevice *device, GAsyncResult *res, - gpointer user_data) + gpointer user_data) { - MbimMessage *response, *message; - GError *error = NULL; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(MbimMessage) message = NULL; + g_autoptr(GError) error = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } if (!mbim_message_dss_connect_response_parse (response, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } - mbim_message_unref (response); if (GPOINTER_TO_UINT (user_data) == DISCONNECT) { - g_print ("[%s] Successfully disconnected\n", - mbim_device_get_path_display (device)); + g_print ("[%s] Successfully disconnected\n", mbim_device_get_path_display (device)); shutdown (TRUE); return; } g_assert (GPOINTER_TO_UINT (user_data) == CONNECT); - g_print ("[%s] Successfully connected\n", - mbim_device_get_path_display (device)); + g_print ("[%s] Successfully connected\n", mbim_device_get_path_display (device)); message = (mbim_message_ip_configuration_query_new ( ctx->session_id, @@ -203,8 +192,6 @@ set_dss_ready (MbimDevice *device, &error)); if (!message) { g_printerr ("error: couldn't create IP config request: %s\n", error->message); - g_error_free (error); - mbim_message_unref (message); shutdown (FALSE); return; } @@ -215,7 +202,6 @@ set_dss_ready (MbimDevice *device, NULL, (GAsyncReadyCallback)ip_configuration_query_ready, NULL); - mbim_message_unref (message); } static gboolean @@ -223,8 +209,8 @@ common_parse (const gchar *str, MbimUuid *dsid, guint32 *ssid) { - gchar **split; - gboolean status = FALSE; + g_auto(GStrv) split = NULL; + gboolean status = FALSE; g_assert (dsid != NULL); g_assert (ssid != NULL); @@ -245,7 +231,6 @@ common_parse (const gchar *str, else status = TRUE; - g_strfreev (split); return status; } @@ -253,8 +238,8 @@ void mbimcli_dss_run (MbimDevice *device, GCancellable *cancellable) { - MbimMessage *request; - GError *error = NULL; + g_autoptr(MbimMessage) request = NULL; + g_autoptr(GError) error = NULL; /* Initialize context */ ctx = g_slice_new (Context); @@ -277,7 +262,6 @@ mbimcli_dss_run (MbimDevice *device, if (!request) { g_printerr ("error: couldn't create request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -288,14 +272,13 @@ mbimcli_dss_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)set_dss_ready, GUINT_TO_POINTER (CONNECT)); - mbim_message_unref (request); return; } /* Disconnect? */ if (disconnect_str) { MbimUuid service_id; - guint32 session_id; + guint32 session_id; if (!common_parse (disconnect_str, &service_id, &session_id)) { shutdown (FALSE); @@ -308,7 +291,6 @@ mbimcli_dss_run (MbimDevice *device, &error); if (!request) { g_printerr ("error: couldn't create request: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -319,7 +301,6 @@ mbimcli_dss_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)set_dss_ready, GUINT_TO_POINTER (DISCONNECT)); - mbim_message_unref (request); return; } diff --git a/src/mbimcli/mbimcli-helpers.c b/src/mbimcli/mbimcli-helpers.c index 73d70de..0f7ccbd 100644 --- a/src/mbimcli/mbimcli-helpers.c +++ b/src/mbimcli/mbimcli-helpers.c @@ -48,28 +48,27 @@ mbimcli_read_uint_from_string (const gchar *str, return FALSE; } - gboolean -mbimcli_print_ip_config (MbimDevice *device, - MbimMessage *response, - GError **error) +mbimcli_print_ip_config (MbimDevice *device, + MbimMessage *response, + GError **error) { - MbimIPConfigurationAvailableFlag ipv4configurationavailable; - MbimIPConfigurationAvailableFlag ipv6configurationavailable; - guint32 ipv4addresscount; - MbimIPv4Element **ipv4address; - guint32 ipv6addresscount; - MbimIPv6Element **ipv6address; - const MbimIPv4 *ipv4gateway; - const MbimIPv6 *ipv6gateway; - guint32 ipv4dnsservercount; - MbimIPv4 *ipv4dnsserver; - guint32 ipv6dnsservercount; - MbimIPv6 *ipv6dnsserver; - guint32 ipv4mtu; - guint32 ipv6mtu; - gchar *str; - GInetAddress *addr; + MbimIPConfigurationAvailableFlag ipv4configurationavailable; + g_autofree gchar *ipv4configurationavailable_str = NULL; + MbimIPConfigurationAvailableFlag ipv6configurationavailable; + g_autofree gchar *ipv6configurationavailable_str = NULL; + guint32 ipv4addresscount; + g_autoptr(MbimIPv4ElementArray) ipv4address = NULL; + guint32 ipv6addresscount; + g_autoptr(MbimIPv6ElementArray) ipv6address = NULL; + const MbimIPv4 *ipv4gateway; + const MbimIPv6 *ipv6gateway; + guint32 ipv4dnsservercount; + g_autofree MbimIPv4 *ipv4dnsserver = NULL; + guint32 ipv6dnsservercount; + g_autofree MbimIPv6 *ipv6dnsserver = NULL; + guint32 ipv4mtu; + guint32 ipv6mtu; if (!mbim_message_ip_configuration_response_parse ( response, @@ -93,44 +92,44 @@ mbimcli_print_ip_config (MbimDevice *device, /* IPv4 info */ - str = mbim_ip_configuration_available_flag_build_string_from_mask (ipv4configurationavailable); - g_print ("\n[%s] IPv4 configuration available: '%s'\n", mbim_device_get_path_display (device), str); - g_free (str); + ipv4configurationavailable_str = mbim_ip_configuration_available_flag_build_string_from_mask (ipv4configurationavailable); + g_print ("\n[%s] IPv4 configuration available: '%s'\n", mbim_device_get_path_display (device), ipv4configurationavailable_str); if (ipv4configurationavailable & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_ADDRESS) { guint i; for (i = 0; i < ipv4addresscount; i++) { + g_autoptr(GInetAddress) addr = NULL; + g_autofree gchar *addr_str = NULL; + addr = g_inet_address_new_from_bytes ((guint8 *)&ipv4address[i]->ipv4_address, G_SOCKET_FAMILY_IPV4); - str = g_inet_address_to_string (addr); - g_print (" IP [%u]: '%s/%u'\n", - i, - str, - ipv4address[i]->on_link_prefix_length); - g_free (str); - g_object_unref (addr); + addr_str = g_inet_address_to_string (addr); + g_print (" IP [%u]: '%s/%u'\n", i, addr_str, ipv4address[i]->on_link_prefix_length); } } if (ipv4configurationavailable & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_GATEWAY) { + g_autoptr(GInetAddress) addr = NULL; + g_autofree gchar *addr_str = NULL; + addr = g_inet_address_new_from_bytes ((guint8 *)ipv4gateway, G_SOCKET_FAMILY_IPV4); - str = g_inet_address_to_string (addr); - g_print (" Gateway: '%s'\n", str); - g_free (str); - g_object_unref (addr); + addr_str = g_inet_address_to_string (addr); + g_print (" Gateway: '%s'\n", addr_str); } if (ipv4configurationavailable & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_DNS) { guint i; for (i = 0; i < ipv4dnsservercount; i++) { + g_autoptr(GInetAddress) addr = NULL; + addr = g_inet_address_new_from_bytes ((guint8 *)&ipv4dnsserver[i], G_SOCKET_FAMILY_IPV4); if (!g_inet_address_get_is_any (addr)) { - str = g_inet_address_to_string (addr); - g_print (" DNS [%u]: '%s'\n", i, str); - g_free (str); + g_autofree gchar *addr_str = NULL; + + addr_str = g_inet_address_to_string (addr); + g_print (" DNS [%u]: '%s'\n", i, addr_str); } - g_object_unref (addr); } } @@ -138,54 +137,50 @@ mbimcli_print_ip_config (MbimDevice *device, g_print (" MTU: '%u'\n", ipv4mtu); /* IPv6 info */ - str = mbim_ip_configuration_available_flag_build_string_from_mask (ipv6configurationavailable); - g_print ("\n[%s] IPv6 configuration available: '%s'\n", mbim_device_get_path_display (device), str); - g_free (str); + ipv6configurationavailable_str = mbim_ip_configuration_available_flag_build_string_from_mask (ipv6configurationavailable); + g_print ("\n[%s] IPv6 configuration available: '%s'\n", mbim_device_get_path_display (device), ipv6configurationavailable_str); if (ipv6configurationavailable & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_ADDRESS) { guint i; for (i = 0; i < ipv6addresscount; i++) { + g_autoptr(GInetAddress) addr = NULL; + g_autofree gchar *addr_str = NULL; + addr = g_inet_address_new_from_bytes ((guint8 *)&ipv6address[i]->ipv6_address, G_SOCKET_FAMILY_IPV6); - str = g_inet_address_to_string (addr); - g_print (" IP [%u]: '%s/%u'\n", - i, - str, - ipv6address[i]->on_link_prefix_length); - g_free (str); - g_object_unref (addr); + addr_str = g_inet_address_to_string (addr); + g_print (" IP [%u]: '%s/%u'\n", i, addr_str, ipv6address[i]->on_link_prefix_length); } } if (ipv6configurationavailable & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_GATEWAY) { + g_autoptr(GInetAddress) addr = NULL; + g_autofree gchar *addr_str = NULL; + addr = g_inet_address_new_from_bytes ((guint8 *)ipv6gateway, G_SOCKET_FAMILY_IPV6); - str = g_inet_address_to_string (addr); - g_print (" Gateway: '%s'\n", str); - g_free (str); - g_object_unref (addr); + addr_str = g_inet_address_to_string (addr); + g_print (" Gateway: '%s'\n", addr_str); } if (ipv6configurationavailable & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_DNS) { guint i; for (i = 0; i < ipv6dnsservercount; i++) { + g_autoptr(GInetAddress) addr = NULL; + addr = g_inet_address_new_from_bytes ((guint8 *)&ipv6dnsserver[i], G_SOCKET_FAMILY_IPV6); if (!g_inet_address_get_is_any (addr)) { - str = g_inet_address_to_string (addr); - g_print (" DNS [%u]: '%s'\n", i, str); - g_free (str); + g_autofree gchar *addr_str = NULL; + + addr_str = g_inet_address_to_string (addr); + g_print (" DNS [%u]: '%s'\n", i, addr_str); } - g_object_unref (addr); } } if (ipv6configurationavailable & MBIM_IP_CONFIGURATION_AVAILABLE_FLAG_MTU) g_print (" MTU: '%u'\n", ipv6mtu); - mbim_ipv4_element_array_free (ipv4address); - mbim_ipv6_element_array_free (ipv6address); - g_free (ipv4dnsserver); - g_free (ipv6dnsserver); return TRUE; } @@ -195,13 +190,14 @@ mbimcli_print_ip_config (MbimDevice *device, * key1="this is a string", key2='and so is this' */ gboolean -mbimcli_parse_key_value_string (const gchar *str, - GError **error, - MbimParseKeyValueForeachFn callback, - gpointer user_data) +mbimcli_parse_key_value_string (const gchar *str, + GError **error, + MbimParseKeyValueForeachFn callback, + gpointer user_data) { - GError *inner_error = NULL; - gchar *dupstr, *p, *key, *key_end, *value, *value_end, quote; + GError *inner_error = NULL; + g_autofree gchar *dupstr = NULL; + gchar *p, *key, *key_end, *value, *value_end, quote; g_return_val_if_fail (callback != NULL, FALSE); g_return_val_if_fail (str != NULL, FALSE); @@ -327,8 +323,6 @@ mbimcli_parse_key_value_string (const gchar *str, break; } - g_free (dupstr); - if (inner_error) { g_propagate_error (error, inner_error); return FALSE; diff --git a/src/mbimcli/mbimcli-intel-firmware-update.c b/src/mbimcli/mbimcli-intel-firmware-update.c index 530288b..58b50c3 100644 --- a/src/mbimcli/mbimcli-intel-firmware-update.c +++ b/src/mbimcli/mbimcli-intel-firmware-update.c @@ -110,15 +110,12 @@ static void modem_reboot_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -126,14 +123,15 @@ modem_reboot_ready (MbimDevice *device, g_print ("[%s] Successfully requested modem to reboot for firmware update\n\n", mbim_device_get_path_display (device)); - mbim_message_unref (response); shutdown (TRUE); } void mbimcli_intel_firmware_update_run (MbimDevice *device, - GCancellable *cancellable) + GCancellable *cancellable) { + g_autoptr(MbimMessage) request = NULL; + /* Initialize context */ ctx = g_slice_new (Context); ctx->device = g_object_ref (device); @@ -141,8 +139,6 @@ mbimcli_intel_firmware_update_run (MbimDevice *device, /* Request to reboot modem? */ if (modem_reboot_flag) { - MbimMessage *request; - g_debug ("Asynchronously rebooting modem..."); request = (mbim_message_intel_firmware_update_modem_reboot_set_new (NULL)); mbim_device_command (ctx->device, @@ -151,7 +147,6 @@ mbimcli_intel_firmware_update_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)modem_reboot_ready, NULL); - mbim_message_unref (request); return; } diff --git a/src/mbimcli/mbimcli-ms-basic-connect-extensions.c b/src/mbimcli/mbimcli-ms-basic-connect-extensions.c index 4dd7ef1..df66d32 100644 --- a/src/mbimcli/mbimcli-ms-basic-connect-extensions.c +++ b/src/mbimcli/mbimcli-ms-basic-connect-extensions.c @@ -47,10 +47,10 @@ static gchar *query_pco_str; static gboolean query_lte_attach_configuration_flag; static gboolean query_lte_attach_status_flag; -static gboolean query_pco_arg_parse (const char *option_name, - const char *value, - gpointer user_data, - GError **error); +static gboolean query_pco_arg_parse (const gchar *option_name, + const gchar *value, + gpointer user_data, + GError **error); static GOptionEntry entries[] = { { "ms-query-pco", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, G_CALLBACK (query_pco_arg_parse), @@ -69,10 +69,10 @@ static GOptionEntry entries[] = { }; static gboolean -query_pco_arg_parse (const char *option_name, - const char *value, - gpointer user_data, - GError **error) +query_pco_arg_parse (const gchar *option_name, + const gchar *value, + gpointer user_data, + GError **error) { query_pco_str = g_strdup (value ? value : "0"); return TRUE; @@ -171,30 +171,25 @@ static void query_pco_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimPcoValue *pco_value; - gchar *pco_data; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimPcoValue) pco_value = NULL; + g_autofree gchar *pco_data = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } - g_print ("[%s] Successfully queried PCO\n\n", - mbim_device_get_path_display (device)); + g_print ("[%s] Successfully queried PCO\n", mbim_device_get_path_display (device)); + if (!mbim_message_ms_basic_connect_extensions_pco_response_parse ( response, &pco_value, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -210,10 +205,7 @@ query_pco_ready (MbimDevice *device, VALIDATE_UNKNOWN (mbim_pco_type_get_string (pco_value->pco_data_type)), pco_value->pco_data_size, pco_data); - g_free (pco_data); - mbim_pco_value_free (pco_value); - mbim_message_unref (response); shutdown (TRUE); } @@ -221,18 +213,15 @@ static void query_lte_attach_configuration_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - guint32 configuration_count = 0; - MbimLteAttachConfiguration **configurations = NULL; - guint i; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimLteAttachConfigurationArray) configurations = NULL; + guint32 configuration_count = 0; + guint i; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -246,8 +235,6 @@ query_lte_attach_configuration_ready (MbimDevice *device, &configurations, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -266,8 +253,6 @@ query_lte_attach_configuration_ready (MbimDevice *device, } #undef VALIDATE_NA - mbim_lte_attach_configuration_array_free (configurations); - mbim_message_unref (response); shutdown (TRUE); } @@ -275,16 +260,13 @@ static void query_lte_attach_status_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimLteAttachStatus *lte_attach_status = NULL; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimLteAttachStatus) lte_attach_status = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -297,8 +279,6 @@ query_lte_attach_status_ready (MbimDevice *device, <e_attach_status, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -313,8 +293,6 @@ query_lte_attach_status_ready (MbimDevice *device, g_print (" Auth protocol: %s\n", mbim_auth_protocol_get_string (lte_attach_status->auth_protocol)); #undef VALIDATE_NA - mbim_lte_attach_status_free (lte_attach_status); - mbim_message_unref (response); shutdown (TRUE); } @@ -322,6 +300,9 @@ void mbimcli_ms_basic_connect_extensions_run (MbimDevice *device, GCancellable *cancellable) { + g_autoptr(MbimMessage) request = NULL; + g_autoptr(GError) error = NULL; + /* Initialize context */ ctx = g_slice_new (Context); ctx->device = g_object_ref (device); @@ -329,13 +310,10 @@ mbimcli_ms_basic_connect_extensions_run (MbimDevice *device, /* Request to get PCO? */ if (query_pco_str) { - MbimMessage *request; MbimPcoValue pco_value; - GError *error = NULL; if (!session_id_parse (query_pco_str, &pco_value.session_id, &error)) { g_printerr ("error: couldn't parse session ID: %s\n", error->message); - g_error_free (error); shutdown (FALSE); return; } @@ -352,14 +330,11 @@ mbimcli_ms_basic_connect_extensions_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_pco_ready, NULL); - mbim_message_unref (request); return; } /* Request to query LTE attach configuration? */ if (query_lte_attach_configuration_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying LTE attach configuration..."); request = mbim_message_ms_basic_connect_extensions_lte_attach_configuration_query_new (NULL); mbim_device_command (ctx->device, @@ -368,14 +343,11 @@ mbimcli_ms_basic_connect_extensions_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_lte_attach_configuration_ready, NULL); - mbim_message_unref (request); return; } /* Request to query LTE attach status? */ if (query_lte_attach_status_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying LTE attach status..."); request = mbim_message_ms_basic_connect_extensions_lte_attach_status_query_new (NULL); mbim_device_command (ctx->device, @@ -384,7 +356,6 @@ mbimcli_ms_basic_connect_extensions_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_lte_attach_status_ready, NULL); - mbim_message_unref (request); return; } diff --git a/src/mbimcli/mbimcli-ms-firmware-id.c b/src/mbimcli/mbimcli-ms-firmware-id.c index d47bf5e..66d4fa7 100644 --- a/src/mbimcli/mbimcli-ms-firmware-id.c +++ b/src/mbimcli/mbimcli-ms-firmware-id.c @@ -110,28 +110,20 @@ static void query_firmware_id_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - const MbimUuid *firmware_id; - gchar *firmware_id_str; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + const MbimUuid *firmware_id; + g_autofree gchar *firmware_id_str = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } - if (!mbim_message_ms_firmware_id_get_response_parse ( - response, - &firmware_id, - &error)) { + if (!mbim_message_ms_firmware_id_get_response_parse (response, &firmware_id, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -141,9 +133,7 @@ query_firmware_id_ready (MbimDevice *device, g_print ("[%s] Firmware ID retrieved: '%s'\n\n", mbim_device_get_path_display (device), VALIDATE_UNKNOWN (firmware_id_str)); - g_free (firmware_id_str); - mbim_message_unref (response); shutdown (TRUE); } @@ -151,6 +141,8 @@ void mbimcli_ms_firmware_id_run (MbimDevice *device, GCancellable *cancellable) { + g_autoptr(MbimMessage) request = NULL; + /* Initialize context */ ctx = g_slice_new (Context); ctx->device = g_object_ref (device); @@ -158,8 +150,6 @@ mbimcli_ms_firmware_id_run (MbimDevice *device, /* Request to get firmware ID? */ if (query_firmware_id_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying firmware ID..."); request = (mbim_message_ms_firmware_id_get_query_new (NULL)); mbim_device_command (ctx->device, @@ -168,7 +158,6 @@ mbimcli_ms_firmware_id_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_firmware_id_ready, NULL); - mbim_message_unref (request); return; } diff --git a/src/mbimcli/mbimcli-ms-host-shutdown.c b/src/mbimcli/mbimcli-ms-host-shutdown.c index e41176b..ce4d0e5 100644 --- a/src/mbimcli/mbimcli-ms-host-shutdown.c +++ b/src/mbimcli/mbimcli-ms-host-shutdown.c @@ -110,15 +110,12 @@ static void ms_host_shutdown_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -126,7 +123,6 @@ ms_host_shutdown_ready (MbimDevice *device, g_print ("[%s] Successfully notified that host is shutting down\n\n", mbim_device_get_path_display (device)); - mbim_message_unref (response); shutdown (TRUE); } @@ -134,6 +130,8 @@ void mbimcli_ms_host_shutdown_run (MbimDevice *device, GCancellable *cancellable) { + g_autoptr(MbimMessage) request = NULL; + /* Initialize context */ ctx = g_slice_new (Context); ctx->device = g_object_ref (device); @@ -141,8 +139,6 @@ mbimcli_ms_host_shutdown_run (MbimDevice *device, /* Request to notify that host is shutting down */ if (notify_host_shutdown_flag) { - MbimMessage *request; - g_debug ("Asynchronously notifying host is shutting down..."); request = (mbim_message_ms_host_shutdown_notify_set_new (NULL)); mbim_device_command (ctx->device, @@ -151,7 +147,6 @@ mbimcli_ms_host_shutdown_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)ms_host_shutdown_ready, NULL); - mbim_message_unref (request); return; } diff --git a/src/mbimcli/mbimcli-phonebook.c b/src/mbimcli/mbimcli-phonebook.c index 39d84cc..a121efa 100644 --- a/src/mbimcli/mbimcli-phonebook.c +++ b/src/mbimcli/mbimcli-phonebook.c @@ -144,7 +144,7 @@ phonebook_write_input_parse (const gchar *str, gchar **number, guint *idx) { - gchar **split; + g_auto(GStrv) split = NULL; g_assert (name != NULL); g_assert (number != NULL); @@ -158,13 +158,11 @@ phonebook_write_input_parse (const gchar *str, if (g_strv_length (split) > 3) { g_printerr ("error: couldn't parse input string, too many arguments\n"); - g_strfreev (split); return FALSE; } if (g_strv_length (split) < 2) { g_printerr ("error: couldn't parse input string, missing arguments\n"); - g_strfreev (split); return FALSE; } @@ -172,7 +170,6 @@ phonebook_write_input_parse (const gchar *str, if (split[2]) { if (!mbimcli_read_uint_from_string (split[2], idx)) { g_printerr ("error: couldn't parse input string, invalid index '%s'\n", split[2]); - g_strfreev (split); return FALSE; } } else { @@ -183,8 +180,6 @@ phonebook_write_input_parse (const gchar *str, /* First two items will always be available */ *name = g_strdup (split[0]); *number = g_strdup (split[1]); - - g_strfreev (split); return TRUE; } @@ -192,30 +187,24 @@ static void set_phonebook_write_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } if (!mbim_message_phonebook_write_response_parse (response, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } g_print ("Phonebook entry successfully written\n"); - mbim_message_unref (response); shutdown (TRUE); } @@ -223,30 +212,24 @@ static void set_phonebook_delete_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } if (!mbim_message_phonebook_delete_response_parse (response, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } g_print ("Phonebook entry/entries successfully deleted"); - mbim_message_unref (response); shutdown (TRUE); } @@ -254,18 +237,15 @@ static void query_phonebook_read_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - guint32 entry_count; - MbimPhonebookEntry **phonebook_entries; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(MbimPhonebookEntryArray) phonebook_entries = NULL; + guint32 entry_count; guint i; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -275,8 +255,6 @@ query_phonebook_read_ready (MbimDevice *device, &phonebook_entries, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -290,9 +268,7 @@ query_phonebook_read_ready (MbimDevice *device, phonebook_entries[i]->number, phonebook_entries[i]->name); } - mbim_phonebook_entry_array_free (phonebook_entries); - mbim_message_unref (response); shutdown (TRUE); } @@ -300,21 +276,18 @@ static void query_phonebook_configuration_ready (MbimDevice *device, GAsyncResult *res) { - MbimMessage *response; - GError *error = NULL; - MbimPhonebookState state; - const gchar *state_str; - guint32 number_of_entries; - guint32 used_entries; - guint32 max_number_length; - guint32 max_name; + g_autoptr(MbimMessage) response = NULL; + g_autoptr(GError) error = NULL; + MbimPhonebookState state; + const gchar *state_str; + guint32 number_of_entries; + guint32 used_entries; + guint32 max_number_length; + guint32 max_name; response = mbim_device_command_finish (device, res, &error); if (!response || !mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &error)) { g_printerr ("error: operation failed: %s\n", error->message); - g_error_free (error); - if (response) - mbim_message_unref (response); shutdown (FALSE); return; } @@ -327,8 +300,6 @@ query_phonebook_configuration_ready (MbimDevice *device, &max_name, &error)) { g_printerr ("error: couldn't parse response message: %s\n", error->message); - g_error_free (error); - mbim_message_unref (response); shutdown (FALSE); return; } @@ -347,7 +318,6 @@ query_phonebook_configuration_ready (MbimDevice *device, max_number_length, max_name); - mbim_message_unref (response); shutdown (TRUE); } @@ -355,6 +325,8 @@ void mbimcli_phonebook_run (MbimDevice *device, GCancellable *cancellable) { + g_autoptr(MbimMessage) request = NULL; + /* Initialize context */ ctx = g_slice_new (Context); ctx->device = g_object_ref (device); @@ -362,8 +334,6 @@ mbimcli_phonebook_run (MbimDevice *device, /* Request to get configuration? */ if (phonebook_configuration_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying phonebook configurations..."); request = mbim_message_phonebook_configuration_query_new (NULL); mbim_device_command (ctx->device, @@ -372,14 +342,11 @@ mbimcli_phonebook_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_phonebook_configuration_ready, NULL); - mbim_message_unref (request); return; } /* Phonebook read */ if (phonebook_read_index) { - MbimMessage *request; - g_debug ("Asynchronously querying phonebook read..."); request = mbim_message_phonebook_read_query_new (MBIM_PHONEBOOK_FLAG_INDEX, phonebook_read_index, @@ -390,14 +357,11 @@ mbimcli_phonebook_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_phonebook_read_ready, NULL); - mbim_message_unref (request); return; } /* Phonebook read all */ if (phonebook_read_all_flag) { - MbimMessage *request; - g_debug ("Asynchronously querying phonebook read all..."); request = mbim_message_phonebook_read_query_new (MBIM_PHONEBOOK_FLAG_ALL, 0, NULL); mbim_device_command (ctx->device, @@ -406,14 +370,11 @@ mbimcli_phonebook_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)query_phonebook_read_ready, NULL); - mbim_message_unref (request); return; } /* Phonebook delete */ if (phonebook_delete_index) { - MbimMessage *request; - g_debug ("Asynchronously phonebook delete..."); request = mbim_message_phonebook_delete_set_new (MBIM_PHONEBOOK_FLAG_INDEX, phonebook_delete_index, @@ -424,14 +385,11 @@ mbimcli_phonebook_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)set_phonebook_delete_ready, NULL); - mbim_message_unref (request); return; } /* Phonebook delete all */ if (phonebook_delete_all_flag) { - MbimMessage *request; - g_debug ("Asynchronously phonebook delete all..."); request = mbim_message_phonebook_delete_set_new (MBIM_PHONEBOOK_FLAG_ALL, 0, NULL); mbim_device_command (ctx->device, @@ -440,16 +398,14 @@ mbimcli_phonebook_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)set_phonebook_delete_ready, NULL); - mbim_message_unref (request); return; } /* Phonebook write */ if (phonebook_write_str) { - MbimMessage *request; - gchar *name; - gchar *number; - guint idx; + g_autofree gchar *name = NULL; + g_autofree gchar *number = NULL; + guint idx; g_debug ("Asynchronously writing phonebook..."); if (!phonebook_write_input_parse (phonebook_write_str, &name, &number, &idx)) { @@ -470,7 +426,6 @@ mbimcli_phonebook_run (MbimDevice *device, ctx->cancellable, (GAsyncReadyCallback)set_phonebook_write_ready, NULL); - mbim_message_unref (request); return; } diff --git a/src/mbimcli/mbimcli.c b/src/mbimcli/mbimcli.c index 2f80b70..9e92843 100644 --- a/src/mbimcli/mbimcli.c +++ b/src/mbimcli/mbimcli.c @@ -398,9 +398,9 @@ parse_actions (void) int main (int argc, char **argv) { - GError *error = NULL; - GFile *file; - GOptionContext *context; + g_autoptr(GError) error = NULL; + g_autoptr(GFile) file = NULL; + g_autoptr(GOptionContext) context = NULL; setlocale (LC_ALL, ""); @@ -424,11 +424,9 @@ int main (int argc, char **argv) mbimcli_ms_basic_connect_extensions_get_option_group ()); g_option_context_add_main_entries (context, main_entries, NULL); if (!g_option_context_parse (context, &argc, &argv, &error)) { - g_printerr ("error: %s\n", - error->message); + g_printerr ("error: %s\n", error->message); exit (EXIT_FAILURE); } - g_option_context_free (context); if (version_flag) print_version_and_exit (); @@ -459,10 +457,7 @@ int main (int argc, char **argv) g_unix_signal_add (SIGTERM, (GSourceFunc)signals_handler, GUINT_TO_POINTER (SIGTERM)); /* Launch MbimDevice creation */ - mbim_device_new (file, - cancellable, - (GAsyncReadyCallback)device_new_ready, - NULL); + mbim_device_new (file, cancellable, (GAsyncReadyCallback)device_new_ready, NULL); g_main_loop_run (loop); if (cancellable) @@ -470,7 +465,6 @@ int main (int argc, char **argv) if (device) g_object_unref (device); g_main_loop_unref (loop); - g_object_unref (file); return (operation_status ? EXIT_SUCCESS : EXIT_FAILURE); } -- cgit v1.2.3