Fix the coverity issue (Memory leak)
[platform/core/connectivity/bluetooth-frwk.git] / bt-api / bt-rfcomm-server.c
index 1365077..ee38cc0 100644 (file)
 #include "bt-common.h"
 #include "bt-request-sender.h"
 #include "bt-event-handler.h"
-
-#ifdef TIZEN_FEATURE_BT_DPM
 #include "bt-dpm.h"
-#endif
 
 #define BLUETOOTH_SOCK_CONNECT_INFO_LEN 16
 #define BATTERY_MONITOR_RFCOMM_INTERVAL 5
@@ -197,6 +194,10 @@ static void __connected_cb(rfcomm_info_t *info, rfcomm_conn_t *conn,
 
        BT_INFO_C("### Connected [RFCOMM Server]");
 
+       if (_bt_common_send_rfcomm_conn_info(RFCOMM_ROLE_SERVER,
+                       TRUE, conn_info.socket_fd) != BLUETOOTH_ERROR_NONE)
+               BT_ERR("Fail to send the connection info");
+
        _bt_common_event_cb(BLUETOOTH_EVENT_RFCOMM_CONNECTED,
                        BLUETOOTH_ERROR_NONE, &conn_info,
                        event_info->cb, event_info->user_data);
@@ -234,6 +235,10 @@ static void __rfcomm_server_disconnect_conn(rfcomm_conn_t *conn,
        BT_INFO("Disconnected FD [%d]", conn->fd);
        disconn_info.socket_fd = conn->fd;
 
+       if (_bt_common_send_rfcomm_conn_info(RFCOMM_ROLE_SERVER,
+                       FALSE, disconn_info.socket_fd) != BLUETOOTH_ERROR_NONE)
+               BT_ERR("Fail to send the connection info");
+
        _bt_common_event_cb(BLUETOOTH_EVENT_RFCOMM_DISCONNECTED,
                        BLUETOOTH_ERROR_NONE, &disconn_info,
                        event_info->cb, event_info->user_data);
@@ -366,7 +371,7 @@ static gboolean __data_received_cb(GIOChannel *chan, GIOCondition cond,
 
        if (bluetooth_get_battery_monitor_state()) {
                if (rx_tag == 0) {
-                       BT_INFO("Adding rfcomm rx timeout function for battery monitor");
+                       BT_DBG("Adding rfcomm rx timeout function for battery monitor");
                        rx_tag = g_timeout_add_seconds(BATTERY_MONITOR_RFCOMM_INTERVAL, (GSourceFunc)__rfcomm_record_rx_data, NULL);
                }
                rx_data += len;
@@ -392,7 +397,6 @@ int new_server_connection(const char *path, int fd, bluetooth_device_address_t *
                return -1;
        }
 
-#ifdef TIZEN_FEATURE_BT_DPM
        if (_bt_check_dpm(BT_DPM_SPP, NULL) == BT_DPM_RESTRICTED) {
                char addr_str[20];
 
@@ -404,7 +408,6 @@ int new_server_connection(const char *path, int fd, bluetooth_device_address_t *
 
                return -1;
        }
-#endif
 
        conn = g_new0(rfcomm_conn_t, 1);
        conn->fd = fd;
@@ -445,6 +448,7 @@ static rfcomm_info_t *__register_method()
        object_id = _bt_register_new_conn(path, new_server_connection);
        if (object_id < 0) {
                __rfcomm_delete_id(id);
+               g_free(path);
                return NULL;
        }
        info = g_new0(rfcomm_info_t, 1);
@@ -1167,12 +1171,10 @@ BT_EXPORT_API int bluetooth_rfcomm_create_socket(const char *uuid)
                return BLUETOOTH_ERROR_PERMISSION_DEINED;
        }
 
-#ifdef TIZEN_FEATURE_BT_DPM
        if (_bt_check_dpm(BT_DPM_SPP, NULL) == BT_DPM_RESTRICTED) {
                BT_ERR("Not allow to use SPP profile");
                return BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION;
        }
-#endif
 
 #ifdef TIZEN_FEATURE_BT_RFCOMM_DIRECT
        BT_INFO("<<<<<<<<< RFCOMM Create socket from app >>>>>>>>>");
@@ -1215,12 +1217,10 @@ BT_EXPORT_API int bluetooth_rfcomm_create_socket_ex(const char *uuid, const char
                return BLUETOOTH_ERROR_PERMISSION_DEINED;
        }
 
-#ifdef TIZEN_FEATURE_BT_DPM
        if (_bt_check_dpm(BT_DPM_SPP, NULL) == BT_DPM_RESTRICTED) {
                BT_ERR("Not allow to use SPP profile");
                return BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION;
        }
-#endif
 
        BT_INFO("<<<<<<<<< RFCOMM Create socket from app >>>>>>>>>");
        info = __register_method_2(path, bus_name);
@@ -1475,12 +1475,10 @@ BT_EXPORT_API int bluetooth_rfcomm_listen_and_accept(int id, int max_pending_con
                return BLUETOOTH_ERROR_INVALID_PARAM;
        }
 
-#ifdef TIZEN_FEATURE_BT_DPM
        if (_bt_check_dpm(BT_DPM_SPP, NULL) == BT_DPM_RESTRICTED) {
                BT_ERR("Not allow to use SPP profile");
                return BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION;
        }
-#endif
 
 #ifdef TIZEN_FEATURE_BT_RFCOMM_DIRECT
        BT_INFO("RFCOMM Listen & accept from app");
@@ -1533,12 +1531,10 @@ BT_EXPORT_API int bluetooth_rfcomm_listen_and_accept_ex(const char *uuid,
 
        BT_CHECK_ENABLED(return);
 
-#ifdef TIZEN_FEATURE_BT_DPM
        if (_bt_check_dpm(BT_DPM_SPP, NULL) == BT_DPM_RESTRICTED) {
                BT_ERR("Not allow to use SPP profile");
                return BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION;
        }
-#endif
 
        BT_INFO("RFCOMM Listen & accept from app");
 
@@ -1579,12 +1575,10 @@ BT_EXPORT_API int bluetooth_rfcomm_listen(int id, int max_pending_connection)
                return BLUETOOTH_ERROR_INVALID_PARAM;
        }
 
-#ifdef TIZEN_FEATURE_BT_DPM
        if (_bt_check_dpm(BT_DPM_SPP, NULL) == BT_DPM_RESTRICTED) {
                BT_ERR("Not allow to use SPP profile");
                return BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION;
        }
-#endif
 
 #ifdef TIZEN_FEATURE_BT_RFCOMM_DIRECT
        BT_INFO("RFCOMM Listen");
@@ -1641,12 +1635,10 @@ BT_EXPORT_API int bluetooth_rfcomm_accept_connection(int server_fd)
 
        BT_CHECK_ENABLED(return);
 
-#ifdef TIZEN_FEATURE_BT_DPM
        if (_bt_check_dpm(BT_DPM_SPP, NULL) == BT_DPM_RESTRICTED) {
                BT_ERR("Not allow to use SPP profile");
                return BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION;
        }
-#endif
 
        if (server_fd < 0) {
                BT_ERR("Invalid FD");