usb-gadget: access external symbol using dlsym(), not extern keyword
[platform/hal/backend/device-common.git] / src / usb_gadget / usb_client_common.c
index a8a3912..a4699f8 100644 (file)
 #include <linux/limits.h>
 
 #include <libsyscommon/file.h>
-#include <libsyscommon/dbus-systemd.h>
+#include <libsyscommon/libsystemd.h>
 #include <hal/device/hal-usb_gadget-interface.h>
 
 #include "usb_gadget.h"
+#include "hal-backend-common.h"
 
 #define MAX_GADGET_STR_LEN 256
 
 #define LEGACY_ENABLE               "1"
 #define LEGACY_DISABLE              "0"
 
-#ifndef EXPORT
-#define EXPORT __attribute__ ((visibility("default")))
-#endif
-
 static bool legacy_is_function_supported(struct usb_function *func)
 {
        char buf[PATH_MAX];
@@ -316,7 +313,7 @@ second_configuration:
                        if (funcs[i]->service)
                                (void)systemd_start_unit_wait_started(funcs[i]->service, ".service", -1);
                } else {
-                       if (funcs[i]->service)
+                       if (funcs[i]->service && !funcs[i]->remain_after_disable)
                                (void)systemd_stop_unit_wait_stopped(funcs[i]->service, ".service", -1);
 
                        if (funcs[i]->handler)