Merge "Mesh: Apply stabilization fixes in FRWK" into tizen
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-obex-server.c
old mode 100644 (file)
new mode 100755 (executable)
index 24ad868..c679d0e
@@ -1,13 +1,11 @@
 /*
- * bluetooth-frwk
- *
- * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *              http://www.apache.org/licenses/LICENSE-2.0
+ *             http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -33,14 +31,15 @@ BT_EXPORT_API int bluetooth_obex_server_init(const char *dst_path)
        bt_user_info_t *user_info;
        gboolean native_service = TRUE;
        char path[BT_FILE_PATH_MAX];
+       int res;
 
-       BT_CHECK_ENABLED();
+       BT_CHECK_ENABLED(return);
 
        if (_bt_get_obex_server_id() != BT_NO_SERVER)
                return BLUETOOTH_ERROR_AGENT_ALREADY_EXIST;
 
        user_info = _bt_get_user_data(BT_COMMON);
-       retv_if(user_info == NULL, BLUETOOTH_ERROR_INTERNAL);
+       retv_if(user_info->cb == NULL, BLUETOOTH_ERROR_INTERNAL);
 
        BT_INIT_PARAMS();
        BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
@@ -57,8 +56,10 @@ BT_EXPORT_API int bluetooth_obex_server_init(const char *dst_path)
 
        if (result == BLUETOOTH_ERROR_NONE) {
                _bt_set_obex_server_id(BT_NATIVE_SERVER);
-                _bt_register_event(BT_OPP_SERVER_EVENT, user_info->cb,
-                                       user_info->user_data);
+               res = _bt_register_event(BT_OPP_SERVER_EVENT, user_info->cb,
+                       user_info->user_data);
+               if (res != BLUETOOTH_ERROR_NONE)
+                       BT_ERR("Fail to _bt_register_event(%d)", res);
        } else {
                BT_ERR("Fail to send request");
        }
@@ -74,7 +75,7 @@ BT_EXPORT_API int bluetooth_obex_server_deinit(void)
        int app_pid;
        gboolean native_service = TRUE;
 
-       BT_CHECK_ENABLED();
+       BT_CHECK_ENABLED(return);
 
        if (_bt_get_obex_server_id() != BT_NATIVE_SERVER)
                return BLUETOOTH_ERROR_AGENT_DOES_NOT_EXIST;
@@ -105,14 +106,15 @@ BT_EXPORT_API int bluetooth_obex_server_init_without_agent(const char *dst_path)
        bt_user_info_t *user_info;
        gboolean native_service = FALSE;
        char path[BT_FILE_PATH_MAX];
+       int res;
 
-       BT_CHECK_ENABLED();
+       BT_CHECK_ENABLED(return);
 
        if (_bt_get_obex_server_id() != BT_NO_SERVER)
                return BLUETOOTH_ERROR_AGENT_ALREADY_EXIST;
 
        user_info = _bt_get_user_data(BT_COMMON);
-       retv_if(user_info == NULL, BLUETOOTH_ERROR_INTERNAL);
+       retv_if(user_info->cb == NULL, BLUETOOTH_ERROR_INTERNAL);
 
        BT_INIT_PARAMS();
        BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
@@ -129,8 +131,11 @@ BT_EXPORT_API int bluetooth_obex_server_init_without_agent(const char *dst_path)
 
        if (result == BLUETOOTH_ERROR_NONE) {
                _bt_set_obex_server_id(BT_CUSTOM_SERVER);
-               _bt_register_event(BT_OPP_SERVER_EVENT, user_info->cb,
-                                       user_info->user_data);
+               res = _bt_register_event(BT_OPP_SERVER_EVENT, user_info->cb,
+                               user_info->user_data);
+               if (res != BLUETOOTH_ERROR_NONE)
+                       BT_ERR("Fail to _bt_register_event(%d)", res);
+
        } else {
                BT_ERR("Fail to send request");
        }
@@ -146,7 +151,7 @@ BT_EXPORT_API int bluetooth_obex_server_deinit_without_agent(void)
        int app_pid;
        gboolean native_service = FALSE;
 
-       BT_CHECK_ENABLED();
+       BT_CHECK_ENABLED(return);
 
        /* Can't call this API after using bluetooth_obex_server_init
             in same process */
@@ -183,11 +188,10 @@ BT_EXPORT_API gboolean bluetooth_obex_server_is_activated(void)
        result = _bt_send_request(BT_OBEX_SERVICE, BT_OBEX_SERVER_IS_ACTIVATED,
                in_param1, in_param2, in_param3, in_param4, &out_param);
 
-       if (result == BLUETOOTH_ERROR_NONE) {
+       if (result == BLUETOOTH_ERROR_NONE)
                is_activated = g_array_index(out_param, gboolean, 0);
-       } else {
+       else
                BT_ERR("Fail to send request");
-       }
 
        BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
 
@@ -241,8 +245,8 @@ BT_EXPORT_API int bluetooth_obex_server_accept_authorize(const char *filename)
        int result;
        char name[BT_FILE_PATH_MAX];
 
-       BT_CHECK_PARAMETER(filename);
-       BT_CHECK_ENABLED();
+       BT_CHECK_PARAMETER(filename, return);
+       BT_CHECK_ENABLED(return);
 
        if (_bt_get_obex_server_id() != BT_NATIVE_SERVER)
                return BLUETOOTH_ERROR_AGENT_DOES_NOT_EXIST;
@@ -266,7 +270,7 @@ BT_EXPORT_API int bluetooth_obex_server_reject_authorize(void)
 {
        int result;
 
-       BT_CHECK_ENABLED();
+       BT_CHECK_ENABLED(return);
 
        if (_bt_get_obex_server_id() != BT_NATIVE_SERVER)
                return BLUETOOTH_ERROR_AGENT_DOES_NOT_EXIST;
@@ -289,8 +293,8 @@ BT_EXPORT_API int bluetooth_obex_server_set_destination_path(const char *dst_pat
        gboolean native_service = FALSE;
        char path[BT_FILE_PATH_MAX];
 
-       BT_CHECK_PARAMETER(dst_path);
-       BT_CHECK_ENABLED();
+       BT_CHECK_PARAMETER(dst_path, return);
+       BT_CHECK_ENABLED(return);
 
        server_id = _bt_get_obex_server_id();
 
@@ -320,8 +324,8 @@ BT_EXPORT_API int bluetooth_obex_server_set_root(const char *root)
        int result;
        char root_path[BT_FILE_PATH_MAX];
 
-       BT_CHECK_PARAMETER(root);
-       BT_CHECK_ENABLED();
+       BT_CHECK_PARAMETER(root, return);
+       BT_CHECK_ENABLED(return);
 
        if (_bt_get_obex_server_id() == BT_NO_SERVER)
                return BLUETOOTH_ERROR_AGENT_DOES_NOT_EXIST;
@@ -344,24 +348,25 @@ BT_EXPORT_API int bluetooth_obex_server_cancel_transfer(int transfer_id)
 {
        int result;
        int server_type;
-       int service_function = BT_OBEX_SERVER_CANCEL_TRANSFER;
 
-       BT_CHECK_ENABLED();
+       BT_CHECK_ENABLED(return);
 
        server_type = _bt_get_obex_server_id();
 
        if (server_type == BT_NO_SERVER)
                return BLUETOOTH_ERROR_AGENT_DOES_NOT_EXIST;
-       else if (server_type == BT_CUSTOM_SERVER)
-               service_function = BT_OBEX_SERVER_CANCEL_ALL_TRANSFERS;
 
        BT_INIT_PARAMS();
        BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
 
        g_array_append_vals(in_param1, &transfer_id, sizeof(int));
 
-       result = _bt_send_request(BT_OBEX_SERVICE, service_function,
-               in_param1, in_param2, in_param3, in_param4, &out_param);
+       if (server_type == BT_CUSTOM_SERVER)
+               result = _bt_send_request(BT_OBEX_SERVICE, BT_OBEX_SERVER_CANCEL_ALL_TRANSFERS,
+                       in_param1, in_param2, in_param3, in_param4, &out_param);
+       else
+               result = _bt_send_request(BT_OBEX_SERVICE, BT_OBEX_SERVER_CANCEL_TRANSFER,
+                       in_param1, in_param2, in_param3, in_param4, &out_param);
 
        BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
 
@@ -372,7 +377,7 @@ BT_EXPORT_API int bluetooth_obex_server_cancel_all_transfers(void)
 {
        int result;
 
-       BT_CHECK_ENABLED();
+       BT_CHECK_ENABLED(return);
 
        if (_bt_get_obex_server_id() == BT_NO_SERVER)
                return BLUETOOTH_ERROR_AGENT_DOES_NOT_EXIST;
@@ -388,3 +393,27 @@ BT_EXPORT_API int bluetooth_obex_server_cancel_all_transfers(void)
        return result;
 }
 
+BT_EXPORT_API int bluetooth_obex_server_is_receiving(gboolean *is_receiving)
+{
+       int result;
+
+       *is_receiving = FALSE;
+
+       BT_CHECK_ENABLED(return);
+
+       BT_INIT_PARAMS();
+       BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+
+       result = _bt_send_request(BT_OBEX_SERVICE, BT_OBEX_SERVER_IS_RECEIVING,
+               in_param1, in_param2, in_param3, in_param4, &out_param);
+
+       if (result == BLUETOOTH_ERROR_NONE)
+               *is_receiving = g_array_index(out_param, gboolean, 0);
+       else
+               BT_ERR("Fail to send request");
+
+       BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
+
+       return result;
+}
+