From: Seonah Moon Date: Mon, 13 Apr 2020 10:13:51 +0000 (+0900) Subject: Check permission denied error for gdbus X-Git-Tag: submit/tizen/20200616.063112~5^2~2^2~1^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b1ad89d31902fd5fb591c9e1acb22b8a95706b4f;p=platform%2Fcore%2Fapi%2Fwifi-aware.git Check permission denied error for gdbus --- diff --git a/include/wifi-aware.h b/include/wifi-aware.h index 87715e0..a1ee315 100644 --- a/include/wifi-aware.h +++ b/include/wifi-aware.h @@ -444,6 +444,7 @@ int wifi_aware_enable(wifi_aware_enabled_cb callback, void *user_data); * @retval #WIFI_AWARE_ERROR_NOT_INITIALIZED * @retval #WIFI_AWARE_ERROR_INVALID_OPERATION * @retval #WIFI_AWARE_ERROR_OPERATION_FAILED + * @retval #WIFI_AWARE_ERROR_PERMISSION_DENIED * @see wifi_aware_enable() */ int wifi_aware_disable(); @@ -524,6 +525,7 @@ int wifi_aware_session_unset_terminated_cb(wifi_aware_session_h session); * @retval #WIFI_AWARE_ERROR_INVALID_PARAMETER * @retval #WIFI_AWARE_ERROR_INVALID_OPERATION * @retval #WIFI_AWARE_ERROR_OPERATION_FAILED + * @retval #WIFI_AWARE_ERROR_PERMISSION_DENIED * @see wifi_aware_session_publish() * @see wifi_aware_session_subscribe() */ @@ -907,6 +909,7 @@ typedef void(*wifi_aware_data_path_open_cb)(wifi_aware_data_path_h data_path, wi * @retval #WIFI_AWARE_ERROR_INVALID_OPERATION * @retval #WIFI_AWARE_ERROR_INVALID_PARAMETER * @retval #WIFI_AWARE_ERROR_OPERATION_FAILED + * @retval #WIFI_AWARE_ERROR_PERMISSION_DENIED * @see wifi_aware_data_path_close() */ int wifi_aware_data_path_open(wifi_aware_data_path_h data_path, @@ -921,6 +924,7 @@ int wifi_aware_data_path_open(wifi_aware_data_path_h data_path, * @retval #WIFI_AWARE_ERROR_INVALID_OPERATION * @retval #WIFI_AWARE_ERROR_INVALID_PARAMETER * @retval #WIFI_AWARE_ERROR_OPERATION_FAILED + * @retval #WIFI_AWARE_ERROR_PERMISSION_DENIED * @see wifi_aware_data_path_open() */ int wifi_aware_data_path_close(wifi_aware_data_path_h data_path); diff --git a/src/include/wifi-aware-private.h b/src/include/wifi-aware-private.h index 75e330e..d9c562d 100644 --- a/src/include/wifi-aware-private.h +++ b/src/include/wifi-aware-private.h @@ -29,6 +29,7 @@ extern "C" { const char *_wifi_aware_convert_error_type_to_string(wifi_aware_error_e err); wifi_aware_error_e _wifi_aware_convert_error_string_to_enum(const char *error); +wifi_aware_error_e _wifi_aware_convert_gdbus_error(GDBusError error); wifi_aware_error_e _wifi_aware_convert_nan_manager_error(int error); bool _wifi_aware_is_initialized(); diff --git a/src/wifi-aware-gdbus.c b/src/wifi-aware-gdbus.c index 194649c..9771cb3 100644 --- a/src/wifi-aware-gdbus.c +++ b/src/wifi-aware-gdbus.c @@ -195,13 +195,14 @@ static int __wifi_aware_dbus_method_call_sync(const char *interface_name, NULL, &error); - if (*reply == NULL) { - if (error == NULL) - WIFI_AWARE_LOGE("g_dbus_connection_call_sync failed: unknown error"); - else - WIFI_AWARE_LOGE("g_dbus_connection_call_sync failed: [%d:%s]", - error->code, error->message); + if (error) { + WIFI_AWARE_LOGE("g_dbus_connection_call_sync failed: [%d:%s]", + error->code, error->message); + return _wifi_aware_convert_gdbus_error(error->code); + } + if (*reply == NULL) { + WIFI_AWARE_LOGE("g_dbus_connection_call_sync failed: unknown error"); return WIFI_AWARE_ERROR_OPERATION_FAILED; } return WIFI_AWARE_ERROR_NONE; diff --git a/src/wifi-aware-private.c b/src/wifi-aware-private.c index 41071b4..553aa41 100644 --- a/src/wifi-aware-private.c +++ b/src/wifi-aware-private.c @@ -157,6 +157,27 @@ wifi_aware_error_e _wifi_aware_convert_error_string_to_enum(const char *error) return WIFI_AWARE_ERROR_OPERATION_FAILED; } +wifi_aware_error_e _wifi_aware_convert_gdbus_error(GDBusError error) +{ + switch(error) { + case G_DBUS_ERROR_NO_REPLY: + return WIFI_AWARE_ERROR_INVALID_OPERATION; + case G_DBUS_ERROR_UNKNOWN_METHOD: + return WIFI_AWARE_ERROR_INVALID_OPERATION; + case G_DBUS_ERROR_INVALID_ARGS: + return WIFI_AWARE_ERROR_INVALID_PARAMETER; + case G_DBUS_ERROR_ACCESS_DENIED: + return WIFI_AWARE_ERROR_PERMISSION_DENIED; + case G_DBUS_ERROR_NOT_SUPPORTED: + return WIFI_AWARE_ERROR_NOT_SUPPORTED; + default: + WIFI_AWARE_LOGI("Unknown Error %d", error); + break; + } + + return WIFI_AWARE_ERROR_OPERATION_FAILED; +} + wifi_aware_error_e _wifi_aware_convert_nan_manager_error(int error) { switch (error) {