Fix service file
authorWootak Jung <wootak.jung@samsung.com>
Fri, 12 Mar 2021 05:55:29 +0000 (14:55 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Sun, 11 Apr 2021 23:40:16 +0000 (08:40 +0900)
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
packaging/tds-provider.manifest [new file with mode: 0644]
packaging/tds-provider.service
packaging/tds-provider.spec
src/tds-api.c
src/tds-provider-advertiser.c
src/tds-provider-aware.c
src/tds-provider-service.c

diff --git a/packaging/tds-provider.manifest b/packaging/tds-provider.manifest
new file mode 100644 (file)
index 0000000..97e8c31
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_"/>
+       </request>
+</manifest>
index 6bc4673dd5fb37b45f3fccb149e8163daf272443..dc933aaac7b229013209b59a204ad0478131ce44 100644 (file)
@@ -2,11 +2,8 @@
 Description=TDS Provider
 
 [Service]
-Type=dbus
 User=network_fw
 Group=network_fw
-BusName=org.tizen.tds.provider
 SmackProcessLabel=System
 ExecStart=/usr/bin/tds-provider
-Capabilities=cap_net_raw,cap_sys_rawio=i
-SecureBits=keep-caps
+KillMode=process
index 5df1b85294a407004832c2b355af19c9166c2dd0..3aaa2cbb9d3c533375be14ad73b33b0270b7cc53 100644 (file)
@@ -4,7 +4,8 @@ Version:    0.6.0
 Release:    1
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
-Source1:       tds-provider.service
+Source1:       %{name}.service
+Source2:       %{name}.manifest
 
 BuildRequires:  cmake
 BuildRequires:  pkgconfig(dlog)
@@ -25,7 +26,7 @@ TDS(Transport Discovery Service) Provider
 
 %prep
 %setup -q
-cp -a %{SOURCE1} .
+cp -a %{SOURCE1} %{SOURCE2} .
 
 %build
 
@@ -39,7 +40,9 @@ cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
 %make_install
 
 mkdir -p %{buildroot}%{_unitdir}
+mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
 cp tds-provider.service %{buildroot}%{_unitdir}/tds-provider.service
+#ln -s tds-provider.service %{buildroot}%{_unitdir}/multi-user.target.wants/tds-provider.service
 
 %post
 /sbin/ldconfig
@@ -47,7 +50,9 @@ cp tds-provider.service %{buildroot}%{_unitdir}/tds-provider.service
 %postun -p /sbin/ldconfig
 
 %files
+%manifest %{name}.manifest
 %license LICENSE
 %defattr(-, root, root)
 %{_bindir}/tds-provider
 %{_unitdir}/tds-provider.service
+#%{_unitdir}/multi-user.target.wants/tds-provider.service
index 8f9639cc84b749b25114d431d21231db7ecb43d6..6b7415e5f9dd58656f63736ff9f87a6bed036148 100644 (file)
@@ -65,7 +65,7 @@ bool _tds_bloom_filter_contain_hash(const uint8_t *inFilterPtr, size_t inFilterL
 
 bool _tds_bloom_filter_contain_string(const uint8_t *inFilterPtr, size_t inFilterLen, const char *inStr, size_t inLen)
 {
-       uint64_t hash = siphash24(inStr, inLen, (char *)kTDSSipHashKey); // param sequence check
+       uint64_t hash = siphash24(inStr, inLen, (char *)kTDSSipHashKey);
        return _tds_bloom_filter_contain_hash(inFilterPtr, inFilterLen, hash);
 }
 
index ca8f196913b39423ce6f4746cb597a1168610d3a..0760e667797a41bd48821b9da4262bfb8db676d0 100644 (file)
@@ -69,7 +69,7 @@ int _tds_advertiser_enable(tds_transport_state_e transport_state)
                return TDS_ERROR_INTERNAL;
        }
 
-       TDS_INFO("Create Bloom Filter with 'provider' Operation");
+       TDS_INFO("Create Bloom Filter with 'provider %s' Operation", transport_state ? "ON" : "OFF");
        _tds_bloom_filter_add_string(transport_data, sizeof(transport_data),
                        TDS_BLOOM_FILTER_OPERATION_STR_PROVIDER, strlen(TDS_BLOOM_FILTER_OPERATION_STR_PROVIDER));
        /* TODO: actually, below strings are not required. need to check that keep or not */
index 53d97828977064fba6bf4e8f86fbe99f527dd563..2f0731be66e9ce39900ecca4d4f843a8b583085f 100644 (file)
@@ -103,17 +103,10 @@ static void __tds_aware_wifi_activated(wifi_manager_error_e result, void *user_d
 
 static void __tds_aware_wifi_deactivated(wifi_manager_error_e result, void *user_data)
 {
-       int ret;
-
        if (result != WIFI_MANAGER_ERROR_NONE)
                TDS_ERR("WiFi De-Activation Failed. result: %d", result);
        else
                TDS_INFO("WiFi De-Activated Successfully");
-
-       ret = wifi_manager_deinitialize(wifi);
-       if (ret != WIFI_MANAGER_ERROR_NONE)
-               TDS_ERR("wifi_manager_deinitialize() failed. ret: %d(%s)", ret, get_error_message(ret));
-       wifi = NULL;
 }
 
 int _tds_aware_init()
@@ -162,6 +155,9 @@ int _tds_aware_deinit()
        int ret;
        TDS_DBG("Enter");
 
+       if (!g_aware_enabled)
+               return TDS_ERROR_NONE;
+
        ret = wifi_aware_disable();
        if (ret != WIFI_AWARE_ERROR_NONE)
                TDS_ERR("wifi_aware_disable() failed. ret: %d(%s)", ret, get_error_message(ret));
@@ -170,6 +166,11 @@ int _tds_aware_deinit()
        if (ret != WIFI_MANAGER_ERROR_NONE)
                TDS_ERR("wifi_manager_deactivate() failed. ret: %d(%s)", ret, get_error_message(ret));
 
+       ret = wifi_manager_deinitialize(wifi);
+       if (ret != WIFI_MANAGER_ERROR_NONE)
+               TDS_ERR("wifi_manager_deinitialize() failed. ret: %d(%s)", ret, get_error_message(ret));
+
+       wifi = NULL;
        g_aware_enabled = FALSE;
        return TDS_ERROR_NONE;
 }
index 06f180bd1f14ba7d6c0a271db16c3de94efac189..a1fb00a6fa33d0e7d026bcd4b6b4ab549e5b0ddf 100644 (file)
@@ -174,6 +174,15 @@ int _tds_service_disable()
        return TDS_ERROR_NONE;
 }
 
+static gboolean __tds_service_reset_timer_cb(void *data)
+{
+       TDS_INFO("Reset TDS Service");
+       _tds_advertiser_disable();
+       _tds_advertiser_enable(TDS_TRANSPORT_STATE_OFF);
+       _tds_scanner_enable();
+       return FALSE;
+}
+
 int _tds_service_handle_transport_block(bt_tds_transport_block_list_s *info)
 {
        int i;
@@ -194,10 +203,9 @@ int _tds_service_handle_transport_block(bt_tds_transport_block_list_s *info)
                                        TDS_BLOOM_FILTER_OPERATION_STR_BROWSE, strlen(TDS_BLOOM_FILTER_OPERATION_STR_BROWSE)) == TRUE) {
                                TDS_INFO("Bloom Filter Operation 'browse' contained in Transport Block!!");
                                _tds_advertiser_enable(TDS_TRANSPORT_STATE_ON);
-                               _tds_scanner_disable();
                                /* Start NAN Service Discovery */
                                _tds_aware_init();
-                               _tds_advertiser_disable(); /* TODO: need to adjust adv stop timing */
+                               g_timeout_add(20000, __tds_service_reset_timer_cb, NULL);
                        } else {
                                TDS_INFO("Unknown Operation");
                        }
@@ -208,8 +216,6 @@ int _tds_service_handle_transport_block(bt_tds_transport_block_list_s *info)
                                if (_tds_bloom_filter_contain_string((unsigned char *)info->data[i]->data, info->data[i]->length,
                                                g_local_address, strlen(g_local_address)) == TRUE) {
                                        TDS_INFO("Address Matched");
-                                       _tds_advertiser_disable();
-                                       _tds_scanner_disable();
                                        /* Start NAN Service Discovery */
                                        _tds_aware_init();
                                } else {