Commit c4a98989 authored by spiiroin's avatar spiiroin

Merge branch 'jb44679_configfs_configuration' into 'master'

Stop writing to /etc and add settings for configfs details

See merge request !45
parents fb3e0a24 97107d13
......@@ -353,6 +353,8 @@ install -m 644 -D config/diag/* %{buildroot}/%{_sysconfdir}/usb-moded/diag/
install -m 644 -D config/run/* %{buildroot}/%{_sysconfdir}/usb-moded/run/
install -m 644 -D config/run-diag/* %{buildroot}/%{_sysconfdir}/usb-moded/run-diag/
install -m 644 -D config/mass-storage-jolla.ini %{buildroot}/%{_sysconfdir}/usb-moded/
install -d %{buildroot}/%{_sharedstatedir}/usb-moded
touch %{buildroot}/%{_sysconfdir}/modprobe.d/g_ether.conf
touch %{buildroot}/%{_sysconfdir}/udhcpd.conf
......@@ -386,11 +388,14 @@ systemctl daemon-reload || :
%config(noreplace) %{_sysconfdir}/modprobe.d/usb_moded.conf
%ghost %config(noreplace) %{_sysconfdir}/modprobe.d/g_ether.conf
%ghost %{_sysconfdir}/udhcpd.conf
%ghost %{_sysconfdir}/usb-moded/usb-moded.ini
%{_sbindir}/usb_moded
%{_sbindir}/usb_moded_util
/lib/systemd/system/%{name}.service
/lib/systemd/system/basic.target.wants/%{name}.service
%config %{_sysconfdir}/tmpfiles.d/usb-moded.conf
%dir %{_sharedstatedir}/usb-moded
%ghost %{_sharedstatedir}/usb-moded/usb-moded.ini
%files devel
%defattr(-,root,root,-)
......
......@@ -42,7 +42,8 @@
bool android_in_use (void);
static bool android_probe (void);
gchar *android_get_serial (void);
bool android_init_values (void);
bool android_init (void);
void android_quit (void);
bool android_set_enabled (bool enable);
bool android_set_charging_mode(void);
bool android_set_function (const char *function);
......@@ -63,6 +64,8 @@ static int android_probed = -1;
static bool
android_write_file(const char *path, const char *text)
{
LOG_REGISTER_CONTEXT;
bool ack = false;
if( !path || !text )
......@@ -86,6 +89,8 @@ EXIT:
bool
android_in_use(void)
{
LOG_REGISTER_CONTEXT;
if( android_probed < 0 )
log_debug("android_in_use() called before android_probe()");
......@@ -95,6 +100,8 @@ android_in_use(void)
static bool
android_probe(void)
{
LOG_REGISTER_CONTEXT;
if( android_probed <= 0 ) {
android_probed = access(ANDROID0_ENABLE, F_OK) == 0;
log_warning("ANDROID0 %sdetected", android_probed ? "" : "not ");
......@@ -108,6 +115,8 @@ android_probe(void)
gchar *
android_get_serial(void)
{
LOG_REGISTER_CONTEXT;
static const char path[] = "/proc/cmdline";
static const char find[] = "androidboot.serialno=";
static const char pbrk[] = " \t\r\n,";
......@@ -153,10 +162,14 @@ EXIT:
}
/** initialize the basic android values
*
* @return true if android usb backend is ready for use, false otherwise
*/
bool
android_init_values(void)
android_init(void)
{
LOG_REGISTER_CONTEXT;
gchar *text;
if( !android_probe() )
......@@ -214,9 +227,19 @@ EXIT:
return android_in_use();
}
/** Cleanup resources allocated by android usb backend
*/
void
android_quit(void)
{
/* For now this exists for symmetry with other backends only */
}
bool
android_set_enabled(bool enable)
{
LOG_REGISTER_CONTEXT;
bool ack = false;
if( android_in_use() ) {
const char *val = enable ? "1" : "0";
......@@ -233,6 +256,8 @@ android_set_enabled(bool enable)
bool
android_set_charging_mode(void)
{
LOG_REGISTER_CONTEXT;
bool ack = false;
if( !android_in_use() )
......@@ -262,6 +287,8 @@ EXIT:
bool
android_set_function(const char *function)
{
LOG_REGISTER_CONTEXT;
bool ack = false;
if( !function )
......@@ -293,6 +320,8 @@ EXIT:
bool
android_set_productid(const char *id)
{
LOG_REGISTER_CONTEXT;
bool ack = false;
if( id && android_in_use() ) {
......@@ -316,6 +345,8 @@ android_set_productid(const char *id)
bool
android_set_vendorid(const char *id)
{
LOG_REGISTER_CONTEXT;
bool ack = false;
if( id && android_in_use() ) {
char str[16];
......@@ -338,6 +369,8 @@ android_set_vendorid(const char *id)
bool
android_set_attr(const char *function, const char *attr, const char *value)
{
LOG_REGISTER_CONTEXT;
bool ack = false;
if( function && attr && value && android_in_use() ) {
......
......@@ -48,7 +48,8 @@
bool android_in_use (void);
gchar *android_get_serial (void);
bool android_init_values (void);
bool android_init (void);
void android_quit (void);
bool android_set_enabled (bool enable);
bool android_set_charging_mode(void);
bool android_set_function (const char *function);
......
......@@ -64,6 +64,8 @@ static gboolean dbus_connection_disc = FALSE; // got disconnected
static void dbusappsync_release_name(void)
{
LOG_REGISTER_CONTEXT;
/* Drop the service name - if we have it */
if( dbus_connection_ses && dbus_connection_name )
{
......@@ -96,6 +98,8 @@ static void dbusappsync_release_name(void)
static gboolean dbusappsync_obtain_name(void)
{
LOG_REGISTER_CONTEXT;
DBusError error = DBUS_ERROR_INIT;
int ret;
......@@ -150,6 +154,8 @@ EXIT:
static DBusHandlerResult dbusappsync_msg_handler(DBusConnection *const connection, DBusMessage *const msg, gpointer const user_data)
{
LOG_REGISTER_CONTEXT;
DBusHandlerResult status = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
int type = dbus_message_get_type(msg);
const char *interface = dbus_message_get_interface(msg);
......@@ -221,6 +227,8 @@ IGNORE:
*/
static DBusHandlerResult dbusappsync_handle_disconnect(DBusConnection *conn, DBusMessage *msg, void *user_data)
{
LOG_REGISTER_CONTEXT;
if( dbus_message_is_signal(msg, DBUS_INTERFACE_LOCAL, "Disconnected") )
{
log_warning("disconnected from session bus - expecting restart/stop soon\n");
......@@ -235,6 +243,8 @@ static DBusHandlerResult dbusappsync_handle_disconnect(DBusConnection *conn, DBu
*/
static void dbusappsync_cleanup_connection(void)
{
LOG_REGISTER_CONTEXT;
if( dbus_connection_ses != 0 )
{
/* Remove message filters */
......@@ -259,6 +269,8 @@ static void dbusappsync_cleanup_connection(void)
*/
gboolean dbusappsync_init_connection(void)
{
LOG_REGISTER_CONTEXT;
gboolean result = FALSE;
DBusError error = DBUS_ERROR_INIT;
......@@ -316,6 +328,8 @@ EXIT:
*/
gboolean dbusappsync_init(void)
{
LOG_REGISTER_CONTEXT;
gboolean status = FALSE;
if( !dbusappsync_init_connection() )
......@@ -336,6 +350,8 @@ EXIT:
*/
void dbusappsync_cleanup(void)
{
LOG_REGISTER_CONTEXT;
dbusappsync_cleanup_connection();
// NOP
}
......@@ -345,6 +361,8 @@ void dbusappsync_cleanup(void)
*/
int dbusappsync_launch_app(char *launch)
{
LOG_REGISTER_CONTEXT;
int ret = -1; // assume failure
if( dbus_connection_ses == 0 )
......
......@@ -82,6 +82,8 @@ static int appsync_no_dbus = 1; // always disabled
static void appsync_free_elem(list_elem_t *elem)
{
LOG_REGISTER_CONTEXT;
g_free(elem->name);
g_free(elem->launch);
g_free(elem->mode);
......@@ -90,12 +92,16 @@ static void appsync_free_elem(list_elem_t *elem)
static void appsync_free_elem_cb(gpointer elem, gpointer user_data)
{
LOG_REGISTER_CONTEXT;
(void)user_data;
appsync_free_elem(elem);
}
void appsync_free_appsync_list(void)
{
LOG_REGISTER_CONTEXT;
if( appsync_sync_list != 0 )
{
/*g_list_free_full(appsync_sync_list, appsync_free_elem); */
......@@ -108,11 +114,15 @@ void appsync_free_appsync_list(void)
static gint appsync_list_sort_func(gconstpointer a, gconstpointer b)
{
LOG_REGISTER_CONTEXT;
return strcasecmp( (char*)a, (char*)b );
}
void appsync_read_list(int diag)
{
LOG_REGISTER_CONTEXT;
GDir *confdir = 0;
const gchar *dirname;
......@@ -160,6 +170,8 @@ cleanup:
static list_elem_t *appsync_read_file(const gchar *filename, int diag)
{
LOG_REGISTER_CONTEXT;
gchar *full_filename = NULL;
GKeyFile *settingsfile = NULL;
list_elem_t *list_item = NULL;
......@@ -215,6 +227,8 @@ cleanup:
/* @return 0 on succes, 1 if there is a failure */
int appsync_activate_sync(const char *mode)
{
LOG_REGISTER_CONTEXT;
GList *iter;
int count = 0;
......@@ -316,6 +330,8 @@ error:
int appsync_activate_sync_post(const char *mode)
{
LOG_REGISTER_CONTEXT;
GList *iter;
log_debug("activate post sync");
......@@ -374,6 +390,8 @@ error:
int appsync_mark_active(const gchar *name, int post)
{
LOG_REGISTER_CONTEXT;
int ret = -1; // assume name not found
int missing = 0;
......@@ -417,6 +435,8 @@ int appsync_mark_active(const gchar *name, int post)
#ifdef APP_SYNC_DBUS
static gboolean appsync_enumerate_usb_cb(gpointer data)
{
LOG_REGISTER_CONTEXT;
(void)data;
appsync_enumerate_usb_id = 0;
log_debug("handling enumeration timeout");
......@@ -427,6 +447,8 @@ static gboolean appsync_enumerate_usb_cb(gpointer data)
static void appsync_start_enumerate_usb_timer(void)
{
LOG_REGISTER_CONTEXT;
log_debug("scheduling enumeration timeout");
if( appsync_enumerate_usb_id )
g_source_remove(appsync_enumerate_usb_id), appsync_enumerate_usb_id = 0;
......@@ -441,6 +463,8 @@ static void appsync_start_enumerate_usb_timer(void)
static void appsync_cancel_enumerate_usb_timer(void)
{
LOG_REGISTER_CONTEXT;
if( appsync_enumerate_usb_id )
{
log_debug("canceling enumeration timeout");
......@@ -450,6 +474,8 @@ static void appsync_cancel_enumerate_usb_timer(void)
static void appsync_enumerate_usb(void)
{
LOG_REGISTER_CONTEXT;
struct timeval tv;
log_debug("Enumerating");
......@@ -469,6 +495,8 @@ static void appsync_enumerate_usb(void)
void appsync_stop_apps(int post)
{
LOG_REGISTER_CONTEXT;
GList *iter = 0;
for( iter = appsync_sync_list; iter; iter = g_list_next(iter) )
......@@ -487,6 +515,8 @@ void appsync_stop_apps(int post)
int appsync_stop(gboolean force)
{
LOG_REGISTER_CONTEXT;
/* If force arg is used, stop all applications that
* could have been started by usb-moded */
if(force)
......
......@@ -68,6 +68,8 @@ gchar *common_get_mode_list (mode_list_type_t type);
const char *cable_state_repr(cable_state_t state)
{
LOG_REGISTER_CONTEXT;
static const char * const lut[CABLE_STATE_NUMOF] = {
[CABLE_STATE_UNKNOWN] = "unknown",
[CABLE_STATE_DISCONNECTED] = "disconnected",
......@@ -159,6 +161,8 @@ static const modemapping_t common_modemapping[] =
const char *
common_map_mode_to_hardware(const char *internal_mode)
{
LOG_REGISTER_CONTEXT;
const char *hardware_mode = 0;
for( size_t i = 0; common_modemapping[i].internal_mode; ++i ) {
......@@ -173,6 +177,8 @@ common_map_mode_to_hardware(const char *internal_mode)
const char *
common_map_mode_to_external(const char *internal_mode)
{
LOG_REGISTER_CONTEXT;
const char *external_mode = 0;
for( size_t i = 0; common_modemapping[i].internal_mode; ++i ) {
......@@ -192,6 +198,8 @@ common_map_mode_to_external(const char *internal_mode)
*/
void common_send_supported_modes_signal(void)
{
LOG_REGISTER_CONTEXT;
gchar *mode_list = common_get_mode_list(SUPPORTED_MODES_LIST);
umdbus_send_supported_modes_signal(mode_list);
g_free(mode_list);
......@@ -201,6 +209,8 @@ void common_send_supported_modes_signal(void)
*/
void common_send_available_modes_signal(void)
{
LOG_REGISTER_CONTEXT;
gchar *mode_list = common_get_mode_list(AVAILABLE_MODES_LIST);
umdbus_send_available_modes_signal(mode_list);
g_free(mode_list);
......@@ -210,6 +220,8 @@ void common_send_available_modes_signal(void)
*/
void common_send_hidden_modes_signal(void)
{
LOG_REGISTER_CONTEXT;
gchar *mode_list = config_get_hidden_modes();
umdbus_send_hidden_modes_signal(mode_list);
g_free(mode_list);
......@@ -219,6 +231,8 @@ void common_send_hidden_modes_signal(void)
*/
void common_send_whitelisted_modes_signal(void)
{
LOG_REGISTER_CONTEXT;
gchar *mode_list = config_get_mode_whitelist();
umdbus_send_whitelisted_modes_signal(mode_list);
g_free(mode_list);
......@@ -237,6 +251,8 @@ void common_send_whitelisted_modes_signal(void)
*/
static void common_write_to_sysfs_file(const char *path, const char *text)
{
LOG_REGISTER_CONTEXT;
int fd = -1;
if (!path || !text)
......@@ -276,6 +292,8 @@ EXIT:
*/
void common_acquire_wakelock(const char *wakelock_name)
{
LOG_REGISTER_CONTEXT;
char buff[256];
snprintf(buff, sizeof buff, "%s %lld",
wakelock_name,
......@@ -293,6 +311,8 @@ void common_acquire_wakelock(const char *wakelock_name)
*/
void common_release_wakelock(const char *wakelock_name)
{
LOG_REGISTER_CONTEXT;
#if VERBOSE_WAKELOCKING
log_debug("common_release_wakelock %s", wakelock_name);
#endif
......@@ -310,6 +330,8 @@ int
common_system_(const char *file, int line, const char *func,
const char *command)
{
LOG_REGISTER_CONTEXT;
log_debug("EXEC %s; from %s:%d: %s()",
command, file, line, func);
......@@ -327,6 +349,8 @@ FILE *
common_popen_(const char *file, int line, const char *func,
const char *command, const char *type)
{
LOG_REGISTER_CONTEXT;
log_debug("EXEC %s; from %s:%d: %s()",
command, file, line, func);
......@@ -336,6 +360,8 @@ common_popen_(const char *file, int line, const char *func,
waitres_t
common_wait(unsigned tot_ms, bool (*ready_cb)(void *aptr), void *aptr)
{
LOG_REGISTER_CONTEXT;
struct timespec ts;
waitres_t res = WAIT_FAILED;
......@@ -384,6 +410,8 @@ EXIT:
bool
common_msleep_(const char *file, int line, const char *func, unsigned msec)
{
LOG_REGISTER_CONTEXT;
log_debug("SLEEP %u.%03u seconds; from %s:%d: %s()",
msec / 1000u, msec % 1000u,file, line, func);
return common_wait(msec, 0, 0) == WAIT_TIMEOUT;
......@@ -396,6 +424,8 @@ common_msleep_(const char *file, int line, const char *func, unsigned msec)
/* check if a mode is in a list */
static bool common_mode_in_list(const char *mode, char * const *modes)
{
LOG_REGISTER_CONTEXT;
int i;
if (!modes)
......@@ -417,6 +447,8 @@ static bool common_mode_in_list(const char *mode, char * const *modes)
*/
int common_valid_mode(const char *mode)
{
LOG_REGISTER_CONTEXT;
int valid = 1;
/* MODE_ASK, MODE_CHARGER and MODE_CHARGING_FALLBACK are not modes that are settable seen their special 'internal' status
* so we only check the modes that are announed outside. Only exception is the built in MODE_CHARGING */
......@@ -455,6 +487,8 @@ int common_valid_mode(const char *mode)
*/
gchar *common_get_mode_list(mode_list_type_t type)
{
LOG_REGISTER_CONTEXT;
GString *mode_list_str = g_string_new(NULL);
gchar *hidden_modes_value = 0;
......
......@@ -36,8 +36,19 @@
# include "usb_moded-config.h"
# include <stdbool.h>
# include <glib.h>
/* ========================================================================= *
* Constants
* ========================================================================= */
# define USB_MODED_STATIC_CONFIG_DIR "/etc/usb-moded"
# define USB_MODED_STATIC_CONFIG_FILE USB_MODED_STATIC_CONFIG_DIR"/usb-moded.ini"
# define USB_MODED_DYNAMIC_CONFIG_DIR "/var/lib/usb-moded"
# define USB_MODED_DYNAMIC_CONFIG_FILE USB_MODED_DYNAMIC_CONFIG_DIR"/usb-moded.ini"
/* ========================================================================= *
* Prototypes
* ========================================================================= */
......@@ -64,7 +75,7 @@ set_config_result_t config_set_mode_whitelist (const char *whitelist);
set_config_result_t config_set_mode_in_whitelist (const char *mode, int allowed);
set_config_result_t config_set_network_setting (const char *config, const char *setting);
char *config_get_network_setting (const char *config);
int config_merge_conf_file (void);
bool config_init (void);
char *config_get_android_manufacturer(void);
char *config_get_android_vendor_id (void);
char *config_get_android_product (void);
......@@ -72,6 +83,7 @@ char *config_get_android_product_id (void);
char *config_get_hidden_modes (void);
char *config_get_mode_whitelist (void);
int config_is_roaming_not_allowed (void);
char *config_get_conf_string (const gchar *entry, const gchar *key);
/* ========================================================================= *
* Macros
......
This diff is collapsed.
......@@ -34,9 +34,6 @@
* Constants
* ========================================================================= */
# define CONFIG_FILE_DIR "/etc/usb-moded"
# define FS_MOUNT_CONFIG_FILE CONFIG_FILE_DIR"/usb-moded.ini"
# define MODE_SETTING_ENTRY "usbmode"
# define MODE_SETTING_KEY "mode"
# define FS_MOUNT_DEFAULT "/dev/mmcblk0p1"
......
This diff is collapsed.
......@@ -33,7 +33,8 @@
bool configfs_in_use (void);
bool configfs_set_udc (bool enable);
bool configfs_init_values (void);
bool configfs_init (void);
void configfs_quit (void);
bool configfs_set_charging_mode (void);
bool configfs_set_productid (const char *id);
bool configfs_set_vendorid (const char *id);
......
......@@ -99,6 +99,8 @@ static cable_state_t control_cable_state = CABLE_STATE_UNKNOWN;
void
control_rethink_usb_charging_fallback(void)
{
LOG_REGISTER_CONTEXT;
/* Cable must be connected to a pc */
if( control_get_cable_state() != CABLE_STATE_PC_CONNECTED )
goto EXIT;
......@@ -125,11 +127,15 @@ EXIT:
const char *control_get_external_mode(void)
{
LOG_REGISTER_CONTEXT;
return control_external_mode ?: MODE_UNDEFINED;
}
static void control_set_external_mode(const char *mode)
{
LOG_REGISTER_CONTEXT;
gchar *previous = control_external_mode;
if( !g_strcmp0(previous, mode) )
goto EXIT;
......@@ -167,12 +173,16 @@ EXIT:
void control_clear_external_mode(void)
{
LOG_REGISTER_CONTEXT;
g_free(control_external_mode),
control_external_mode = 0;
}
static void control_update_external_mode(void)
{
LOG_REGISTER_CONTEXT;
const char *internal_mode = control_get_usb_mode();
const char *external_mode = common_map_mode_to_external(internal_mode);
......@@ -181,11 +191,15 @@ static void control_update_external_mode(void)
const char *control_get_target_mode(void)
{
LOG_REGISTER_CONTEXT;
return control_target_mode ?: MODE_UNDEFINED;
}
static void control_set_target_mode(const char *mode)
{
LOG_REGISTER_CONTEXT;
gchar *previous = control_target_mode;
if( !g_strcmp0(previous, mode) )
goto EXIT;
......@@ -204,6 +218,8 @@ EXIT:
void control_clear_target_mode(void)
{
LOG_REGISTER_CONTEXT;
g_free(control_target_mode),
control_target_mode = 0;
}
......@@ -215,11 +231,15 @@ void control_clear_target_mode(void)
*/
const char * control_get_usb_mode(void)
{
LOG_REGISTER_CONTEXT;
return control_internal_mode;
}
void control_clear_internal_mode(void)
{
LOG_REGISTER_CONTEXT;
g_free(control_internal_mode),
control_internal_mode = 0;
}
......@@ -230,6 +250,8 @@ void control_clear_internal_mode(void)
*/
void control_set_usb_mode(const char *mode)
{
LOG_REGISTER_CONTEXT;
gchar *previous = control_internal_mode;
if( !g_strcmp0(previous, mode) )
goto EXIT;
......@@ -259,6 +281,8 @@ EXIT:
*/
void control_mode_switched(const char *mode)
{
LOG_REGISTER_CONTEXT;
/* Update state data - without retriggering the worker thread
*/
if( g_strcmp0(control_internal_mode, mode) ) {
......@@ -281,6 +305,8 @@ void control_mode_switched(const char *mode)
*/
void control_select_usb_mode(void)
{
LOG_REGISTER_CONTEXT;
char *mode_to_set = 0;
if( usbmoded_get_rescue_mode() ) {
......@@ -337,6 +363,8 @@ EXIT:
*/
void control_set_cable_state(cable_state_t cable_state)
{
LOG_REGISTER_CONTEXT;
cable_state_t prev = control_cable_state;
control_cable_state = cable_state;
......@@ -370,11 +398,15 @@ EXIT:
*/
cable_state_t control_get_cable_state(void)
{
LOG_REGISTER_CONTEXT;
return control_cable_state;
}
void control_clear_cable_state(void)
{
LOG_REGISTER_CONTEXT;
control_cable_state = CABLE_STATE_UNKNOWN;
}
......@@ -384,6 +416,8 @@ void control_clear_cable_state(void)
*/
bool control_get_connection_state(void)
{
LOG_REGISTER_CONTEXT;
bool connected = false;
switch( control_get_cable_state() ) {
case CABLE_STATE_CHARGER_CONNECTED:
......
......@@ -219,6 +219,8 @@ static const char umdbus_introspect_usbmoded[] =
*/
static void umdbus_send_config_signal(const char *section, const char *key, const char *value)
{
LOG_REGISTER_CONTEXT;
DBusMessage* msg = 0;
if( !section || !key || !value ) {
......@@ -258,6 +260,8 @@ EXIT:
static DBusHandlerResult umdbus_msg_handler(DBusConnection *const connection, DBusMessage *const msg, gpointer const user_data)
{
LOG_REGISTER_CONTEXT;
DBusHandlerResult status = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
DBusMessage *reply = 0;
const char *interface = dbus_message_get_interface(msg);
......@@ -657,6 +661,8 @@ EXIT:
DBusConnection *umdbus_get_connection(void)
{
LOG_REGISTER_CONTEXT;
DBusConnection *connection = 0;
if( umdbus_connection )
connection = dbus_connection_ref(umdbus_connection);
......@@ -672,6 +678,8 @@ DBusConnection *umdbus_get_connection(void)
*/
gboolean umdbus_init_connection(void)
{
LOG_REGISTER_CONTEXT;
gboolean status = FALSE;
DBusError error = DBUS_ERROR_INIT;
......@@ -710,6 +718,8 @@ EXIT:
*/
gboolean umdbus_init_service(void)
{
LOG_REGISTER_CONTEXT;
gboolean status = FALSE;
DBusError error = DBUS_ERROR_INIT;
int ret;
......@@ -741,6 +751,8 @@ EXIT:
*/
static void umdbus_cleanup_service(void)
{
LOG_REGISTER_CONTEXT;
if( !umdbus_service_name_acquired )
goto EXIT;
......@@ -763,6 +775,8 @@ EXIT:
*/
void umdbus_cleanup(void)
{
LOG_REGISTER_CONTEXT;
/* clean up system bus connection */
if (umdbus_connection != NULL)
{
......@@ -784,6 +798,8 @@ void umdbus_cleanup(void)
*/
static int umdbus_send_signal_ex(const char *signal_type, const char *content)
{