2 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include "stc-manager.h"
20 #include "stc-manager-plugin-pcap.h"
22 static gboolean stc_plugin_enabled = FALSE;
23 static void *handle_plugin;
24 static stc_plugin_pcap_s *stc_plugin;
27 int stc_plugin_pcap_init(void)
29 __STC_LOG_FUNC_ENTER__;
31 handle_plugin = dlopen(STC_PLUGIN_PCAP_FILEPATH, RTLD_NOW);
33 STC_LOGE("Can't load %s: %s", STC_PLUGIN_PCAP_FILEPATH, dlerror());
34 __STC_LOG_FUNC_EXIT__;
35 return STC_ERROR_UNINITIALIZED;
38 stc_plugin = dlsym(handle_plugin, "stc_plugin_pcap");
40 STC_LOGE("Can't load symbol: %s", dlerror());
41 dlclose(handle_plugin);
42 __STC_LOG_FUNC_EXIT__;
43 return STC_ERROR_UNINITIALIZED;
46 stc_plugin->initialize_plugin();
47 stc_plugin_enabled = TRUE;
49 __STC_LOG_FUNC_EXIT__;
50 return STC_ERROR_NONE;
53 int stc_plugin_pcap_deinit(void)
55 __STC_LOG_FUNC_ENTER__;
57 if (!stc_plugin_enabled) {
58 __STC_LOG_FUNC_EXIT__;
59 return STC_ERROR_UNINITIALIZED;
62 stc_plugin->deinitialize_plugin();
63 stc_plugin_enabled = FALSE;
64 dlclose(handle_plugin);
66 __STC_LOG_FUNC_EXIT__;
67 return STC_ERROR_NONE;
70 int stc_plugin_pcap_lookup_dev(void)
72 if (!stc_plugin_enabled) {
74 STC_LOGE("Plugin wasn't enabled");
75 return STC_ERROR_UNINITIALIZED;
80 STC_LOGE("Plugin wasn't loaded");
81 return STC_ERROR_UNINITIALIZED;
84 return stc_plugin->lookup_dev();
87 int stc_plugin_pcap_lookup_net(void)
89 if (!stc_plugin_enabled) {
91 STC_LOGE("Plugin wasn't enabled");
92 return STC_ERROR_UNINITIALIZED;
97 STC_LOGE("Plugin wasn't loaded");
98 return STC_ERROR_UNINITIALIZED;
101 return stc_plugin->lookup_net();
104 int stc_plugin_pcap_find_alldevs(void)
106 if (!stc_plugin_enabled) {
108 STC_LOGE("Plugin wasn't enabled");
109 return STC_ERROR_UNINITIALIZED;
114 STC_LOGE("Plugin wasn't loaded");
115 return STC_ERROR_UNINITIALIZED;
118 return stc_plugin->find_alldevs();
121 int stc_plugin_pcap_register_loop_pcap(const char *ifname,
124 if (!stc_plugin_enabled) {
126 STC_LOGE("Plugin wasn't enabled");
127 return STC_ERROR_UNINITIALIZED;
132 STC_LOGE("Plugin wasn't loaded");
133 return STC_ERROR_UNINITIALIZED;
136 return stc_plugin->register_loop_pcap(ifname, group);
139 int stc_plugin_pcap_unregister_loop_pcap(const char *ifname,
142 if (!stc_plugin_enabled) {
144 STC_LOGE("Plugin wasn't enabled");
145 return STC_ERROR_UNINITIALIZED;
150 STC_LOGE("Plugin wasn't loaded");
151 return STC_ERROR_UNINITIALIZED;
154 return stc_plugin->unregister_loop_pcap(ifname, group);