+static int __net_wifidirect_gerror_to_enum(GError* error)
+{
+ int ret = WIFI_DIRECT_ERROR_NONE;
+ if(error == NULL) {
+ WDC_LOGI("GError is NULL!!");
+ return ret;
+ }
+
+ WDC_LOGE("wifi_direct_dbus_method_call_sync() failed. error [%d: %s]",
+ error->code, error->message);
+
+ if(NULL == strstr(error->message, "net.wifidirect.Error")) {
+ if (NULL != strstr(error->message, ".PermissionDenied"))
+ ret = WIFI_DIRECT_ERROR_PERMISSION_DENIED;
+ else
+ ret = WIFI_DIRECT_ERROR_OPERATION_FAILED;
+ } else {
+ if (NULL != strstr(error->message, "InvalidParameter"))
+ ret = WIFI_DIRECT_ERROR_INVALID_PARAMETER;
+ else if (NULL != strstr(error->message, "NotPermitted"))
+ ret = WIFI_DIRECT_ERROR_NOT_PERMITTED;
+ else if (NULL != strstr(error->message, "OperationFailed"))
+ ret = WIFI_DIRECT_ERROR_OPERATION_FAILED;
+ else if (NULL != strstr(error->message, "TooManyClient"))
+ ret = WIFI_DIRECT_ERROR_TOO_MANY_CLIENT;
+ else
+ ret = WIFI_DIRECT_ERROR_OPERATION_FAILED;
+ }
+ g_error_free(error);
+ return ret;
+}
+