diff options
Diffstat (limited to 'geofence/src/geofence_client.c')
-rw-r--r-- | geofence/src/geofence_client.c | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/geofence/src/geofence_client.c b/geofence/src/geofence_client.c index eca2942..319f75d 100644 --- a/geofence/src/geofence_client.c +++ b/geofence/src/geofence_client.c @@ -46,7 +46,7 @@ static void __geofence_signal_callback(GDBusConnection *conn, const gchar *name, handle->user_cb(sig, param, handle->user_data); } -EXPORT_API int geo_client_add_geofence(geofence_client_dbus_h geofence_client, gchar *app_id, gint place_id, gint geofence_type, gdouble latitude, gdouble longitude, gint radius, const gchar *address, const gchar *bssid, const gchar *ssid) +EXPORT_API int geo_client_add_geofence(geofence_client_dbus_h geofence_client, gchar *app_id, gint place_id, gint geofence_type, gdouble latitude, gdouble longitude, gint radius, const gchar *address, const gchar *bssid, const gchar *ssid, gint *error_code) { GEOFENCE_CLIENT_LOGD("ENTER >>>"); g_return_val_if_fail(geofence_client, GEOFENCE_CLIENT_ERROR_PARAMETER); @@ -71,6 +71,8 @@ EXPORT_API int geo_client_add_geofence(geofence_client_dbus_h geofence_client, g GEOFENCE_CLIENT_LOGE("Fail to add geofence Error[%s]", error->message); g_error_free(error); } + if (error_code != NULL) + *error_code = GEOFENCE_CLIENT_ACCESS_DENIED; } g_object_unref(proxy); } else { @@ -102,8 +104,8 @@ EXPORT_API int geo_client_delete_geofence(geofence_client_dbus_h geofence_client if (error) { GEOFENCE_CLIENT_LOGE("Fail to get proxy Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } return ret; @@ -131,7 +133,8 @@ EXPORT_API int geo_client_get_geofences(geofence_client_dbus_h geofence_client, reg = g_dbus_proxy_call_sync(proxy, "GetGeofences", g_variant_new("(is)", place_id, app_id), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); if (reg) { g_variant_get(reg, "(iiaa{sv})", &new_fence_cnt, &new_error_code, &iterator); - *error_code = new_error_code; + if (error_code != NULL) + *error_code = new_error_code; *fence_cnt = new_fence_cnt; if (iterator == NULL) GEOFENCE_CLIENT_LOGE("Iterator is null"); @@ -141,8 +144,8 @@ EXPORT_API int geo_client_get_geofences(geofence_client_dbus_h geofence_client, if (error) { GEOFENCE_CLIENT_LOGE("Fail to get the list Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } g_object_unref(proxy); } else { @@ -173,8 +176,8 @@ EXPORT_API int geo_client_enable_geofence(geofence_client_dbus_h geofence_client if (error) { GEOFENCE_CLIENT_LOGE("Fail to get proxy Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } return ret; @@ -199,8 +202,8 @@ EXPORT_API int geo_client_start_geofence(geofence_client_dbus_h geofence_client, if (error) { GEOFENCE_CLIENT_LOGE("Fail to get proxy Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } return ret; } @@ -224,14 +227,14 @@ EXPORT_API int geo_client_stop_geofence(geofence_client_dbus_h geofence_client, if (error) { GEOFENCE_CLIENT_LOGE("Fail to get proxy Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } return ret; } -EXPORT_API int geo_client_add_place(geofence_client_dbus_h geofence_client, gchar *app_id, const gchar *place_name) +EXPORT_API int geo_client_add_place(geofence_client_dbus_h geofence_client, gchar *app_id, const gchar *place_name, gint *error_code) { /* add fence interface between App & geofence-server */ GEOFENCE_CLIENT_LOGD("ENTER >>>"); @@ -258,6 +261,8 @@ EXPORT_API int geo_client_add_place(geofence_client_dbus_h geofence_client, gcha GEOFENCE_CLIENT_LOGE("Fail to add place Error[%s]", error->message); g_error_free(error); } + if (error_code != NULL) + *error_code = GEOFENCE_CLIENT_ACCESS_DENIED; } g_object_unref(proxy); } else { @@ -289,8 +294,8 @@ EXPORT_API int geo_client_update_place(geofence_client_dbus_h geofence_client, g if (error) { GEOFENCE_CLIENT_LOGE("Fail to get proxy Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } return ret; @@ -313,8 +318,8 @@ EXPORT_API int geo_client_delete_place(geofence_client_dbus_h geofence_client, g if (error) { GEOFENCE_CLIENT_LOGE("Fail to get proxy Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } return ret; @@ -338,7 +343,8 @@ EXPORT_API int geo_client_get_place_name(geofence_client_dbus_h geofence_client, reg = g_dbus_proxy_call_sync(proxy, "GetPlaceName", g_variant_new("(is)", place_id, app_id), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); if (reg) { g_variant_get(reg, "(is)", &new_error_code, &new_place_name); - *error_code = new_error_code; + if (error_code != NULL) + *error_code = new_error_code; *place_name = g_strdup(new_place_name); g_free(new_place_name); g_variant_unref(reg); @@ -346,8 +352,8 @@ EXPORT_API int geo_client_get_place_name(geofence_client_dbus_h geofence_client, if (error) { GEOFENCE_CLIENT_LOGE("Fail to get the place name Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } g_object_unref(proxy); } else { @@ -385,7 +391,8 @@ EXPORT_API int geo_client_get_places(geofence_client_dbus_h geofence_client, gch if (reg) { g_variant_get(reg, "(iiaa{sv})", &new_place_cnt, &new_error_code, &iterator); *place_cnt = new_place_cnt; - *error_code = new_error_code; + if (error_code != NULL) + *error_code = new_error_code; if (iterator == NULL) GEOFENCE_CLIENT_LOGE("Iterator is null"); *iter = iterator; @@ -394,16 +401,16 @@ EXPORT_API int geo_client_get_places(geofence_client_dbus_h geofence_client, gch if (error) { GEOFENCE_CLIENT_LOGE("Fail to get the place list Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ACCESS_DENIED; } g_object_unref(proxy); } else { if (error) { GEOFENCE_CLIENT_LOGE("Fail to get proxy Error[%s]", error->message); g_error_free(error); - ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } + ret = GEOFENCE_CLIENT_ERROR_DBUS_CALL; } return ret; |