From 8a7b05a437d4a312b55700eab965c9f813c109ee Mon Sep 17 00:00:00 2001 From: sunzhen Date: Tue, 5 Mar 2024 09:49:23 +0800 Subject: [PATCH] update changelog --- debian/changelog | 9 + debian/libkysdk-sysinfo.symbols | 4 - debian/patches/0022-update-changelog.patch | 744 +++++++++++++++++++++ debian/patches/series | 1 + 4 files changed, 754 insertions(+), 4 deletions(-) create mode 100644 debian/patches/0022-update-changelog.patch diff --git a/debian/changelog b/debian/changelog index 465c983..26b380c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +libkysdk-system (2.3.0.0-0k5.1) nile; urgency=medium + + * BUG:无 + * 需求号:无 + * 其他改动说明:回退需求#26155,提供活跃用户的sdk接口的内容 + * 其他改动影响域:无 + + -- szm-min Thu, 29 Feb 2024 16:08:12 +0800 + libkysdk-system (2.3.0.0-0k5.1) nile; urgency=medium * BUG:无 diff --git a/debian/libkysdk-sysinfo.symbols b/debian/libkysdk-sysinfo.symbols index 1e097db..3c957ca 100644 --- a/debian/libkysdk-sysinfo.symbols +++ b/debian/libkysdk-sysinfo.symbols @@ -9,9 +9,7 @@ libkysysinfo.so.1 libkysdk-sysinfo #MINVER# _ZN10KDK_SYSTEM21getSystemArchitectureB5cxx11Ev@Base 1.2.1 _ZN10KDK_SYSTEM21getSystemSerialNumberB5cxx11Ev@Base 1.2.1 _ZN10KDK_SYSTEM25getSystemActivationStatusEv@Base 1.2.1 - _callback@Base 2.3.0.0 config_fetch@Base 2.2.3.5 - dbus_listener_thread@Base 2.3.0.0 die@Base 2.2.3.5 getCurrentVersion@Base 2.0.0.0 getDefaultVersion@Base 2.0.0.0 @@ -52,8 +50,6 @@ libkysysinfo.so.1 libkysdk-sysinfo #MINVER# kdk_system_get_version_detaile@Base 2.0.0.0 kdk_system_get_word@Base 2.2.3.5 kdk_system_is_zyj@Base 1.2.1 - kdk_system_register_switch_user_handle@Base 2.3.0.0 - kdk_system_unregister_switch_user_handle@Base 2.3.0.0 parseJsonText@Base 2.0.0.0 readJsonFile@Base 2.0.0.0 readReleaseFile@Base 2.0.0.0 diff --git a/debian/patches/0022-update-changelog.patch b/debian/patches/0022-update-changelog.patch new file mode 100644 index 0000000..8a29d36 --- /dev/null +++ b/debian/patches/0022-update-changelog.patch @@ -0,0 +1,744 @@ +From: sunzhen +Date: Tue, 5 Mar 2024 09:49:23 +0800 +Subject: update changelog + +--- + src/systeminfo/libkysysinfo.c | 499 +++++++++++++++--------------------------- + src/systeminfo/libkysysinfo.h | 19 -- + 2 files changed, 181 insertions(+), 337 deletions(-) + +diff --git a/src/systeminfo/libkysysinfo.c b/src/systeminfo/libkysysinfo.c +index 2e3548a..fe1baf6 100644 +--- a/src/systeminfo/libkysysinfo.c ++++ b/src/systeminfo/libkysysinfo.c +@@ -41,7 +41,6 @@ + #include "pci/pci.h" + #include + #include "sys/sysinfo.h" +-#include + + #define SAFE_FREE(x) if (x) {free(x); x = NULL;} + #define KYLIN_ACTIVATION_DBUS_ADDRESS "org.freedesktop.activation" +@@ -534,15 +533,15 @@ char* kdk_system_get_kernelVersion() + char *kdk_system_get_eUser() + { + char *e_user = NULL; ++ char *active = NULL; + +- DBusConnection *connection = NULL; ++ DBusConnection *connection = NULL, *user_conn = NULL; + DBusMessage *message = NULL, *reply = NULL; +- DBusMessageIter iter; ++ DBusError error; ++ DBusMessageIter iter, args; + + // 初始化DBus连接 +- DBusError error; + dbus_error_init(&error); +- + connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error); + if (connection == NULL) + { +@@ -571,7 +570,6 @@ char *kdk_system_get_eUser() + + // 释放message + dbus_message_unref(message); +- message = NULL; + + // 解析回复消息 + if (!dbus_message_iter_init(reply, &iter) || +@@ -581,44 +579,47 @@ char *kdk_system_get_eUser() + fprintf(stderr, "DBus reply parsing failed\n"); + goto out; + } +- + // 释放reply + dbus_message_unref(reply); +- reply = NULL; +- +- int element_count = dbus_message_iter_get_element_count(&iter); +- char **users = calloc(element_count + 1, sizeof(char *)); +- if (NULL == users) +- goto out; + ++ // 获取数组长度 获取的长度不对 弃用 ++ // int array_length; + dbus_message_iter_recurse(&iter, &iter); ++ // array_length = dbus_message_iter_get_array_len(&iter); ++ // printf("%d\n", array_length); + +- // 解析返回值 +- // 循环中过程中调用新的dbus接口会导致迭代器iter被清空,但是没细查原因 +- // 先用一个字符串数组存储所有用户的object path +- for (int i = 0; i < element_count; i++) ++ // 解析数组中的每个结构体元素 ++ while (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_INVALID) + { +- char *path = NULL; +- + DBusMessageIter struct_iter; +- dbus_message_iter_recurse(&iter, &struct_iter); +- dbus_message_iter_next(&struct_iter); +- dbus_message_iter_next(&struct_iter); +- dbus_message_iter_get_basic(&struct_iter, &path); + +- users[i] = strdup(path); ++ dbus_uint32_t uid; ++ char *name = NULL, *path = NULL; ++ dbus_message_iter_recurse(&iter, &struct_iter); + +- dbus_message_iter_next(&iter); +- } ++ // dbus_message_iter_get_basic(&struct_iter, &path); // 获取uid + +- for (int i = 0; i < element_count; i++) +- { ++ dbus_message_iter_next(&struct_iter); ++ // dbus_message_iter_get_basic(&struct_iter, &name); // 获取name ++ ++ dbus_message_iter_next(&struct_iter); ++ dbus_message_iter_get_basic(&struct_iter, &path); // 获取interface ++ ++ // 获取EUser + char *interface = "org.freedesktop.login1.User"; + char *state = "State"; + char *property = "Name"; + ++ user_conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error); ++ if (user_conn == NULL) ++ { ++ fprintf(stderr, "DBus connection error: %s\n", error.message); ++ goto out; ++ } ++ ++ // 创建DBus方法调用消息 + message = dbus_message_new_method_call("org.freedesktop.login1", +- users[i], ++ path, + "org.freedesktop.DBus.Properties", + "Get"); + if (message == NULL) +@@ -627,8 +628,19 @@ char *kdk_system_get_eUser() + goto out; + } + +- dbus_message_append_args(message, DBUS_TYPE_STRING, &interface, DBUS_TYPE_STRING, &state, DBUS_TYPE_INVALID); ++ //添加入参 ++ dbus_message_iter_init_append(message, &args); ++ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &interface)) ++ { ++ goto out; ++ } + ++ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &state)) ++ { ++ goto out; ++ } ++ ++ // 发送DBus消息并等待回复 + reply = dbus_connection_send_with_reply_and_block(connection, message, -1, &error); + if (reply == NULL) + { +@@ -636,27 +648,26 @@ char *kdk_system_get_eUser() + goto out; + } + ++ //释放message + dbus_message_unref(message); +- message = NULL; + +- if (!dbus_message_iter_init(reply, &iter) || +- dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT) ++ // 解析回复消息 ++ if (!dbus_message_iter_init(reply, &args) || ++ dbus_message_iter_get_arg_type(&args) != DBUS_TYPE_VARIANT) + { + fprintf(stderr, "DBus reply parsing failed\n"); + goto out; + } +- ++ // 释放reply + dbus_message_unref(reply); +- reply = NULL; +- +- char *active = NULL; +- dbus_message_iter_recurse(&iter, &iter); +- dbus_message_iter_get_basic(&iter, &active); + +- if (0 == strcmp(active, "active")) ++ DBusMessageIter sub; ++ dbus_message_iter_recurse(&args, &sub); ++ dbus_message_iter_get_basic(&sub, &active); ++ if(0 == strcmp(active, "active")) + { + message = dbus_message_new_method_call("org.freedesktop.login1", +- users[i], ++ path, + "org.freedesktop.DBus.Properties", + "Get"); + if (message == NULL) +@@ -665,8 +676,19 @@ char *kdk_system_get_eUser() + goto out; + } + +- dbus_message_append_args(message, DBUS_TYPE_STRING, &interface, DBUS_TYPE_STRING, &property, DBUS_TYPE_INVALID); ++ // 添加入参 ++ dbus_message_iter_init_append(message, &args); ++ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &interface)) ++ { ++ goto out; ++ } ++ ++ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &property)) ++ { ++ goto out; ++ } + ++ // 发送DBus消息并等待回复 + reply = dbus_connection_send_with_reply_and_block(connection, message, -1, &error); + if (reply == NULL) + { +@@ -674,55 +696,62 @@ char *kdk_system_get_eUser() + goto out; + } + ++ // 释放message + dbus_message_unref(message); +- message = NULL; + +- if (!dbus_message_iter_init(reply, &iter) || +- dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT) ++ // 解析回复消息 ++ if (!dbus_message_iter_init(reply, &args) || ++ dbus_message_iter_get_arg_type(&args) != DBUS_TYPE_VARIANT) + { + fprintf(stderr, "DBus reply parsing failed\n"); + goto out; + } +- ++ // 释放reply + dbus_message_unref(reply); +- reply = NULL; + +- dbus_message_iter_recurse(&iter, &iter); +- dbus_message_iter_get_basic(&iter, &e_user); ++ dbus_message_iter_recurse(&args, &sub); ++ dbus_message_iter_get_basic(&sub, &e_user); ++ } + ++ dbus_connection_unref(user_conn); ++ user_conn = NULL; ++ if(e_user) + break; +- } ++ ++ dbus_message_iter_next(&iter); + } + +- if (e_user) +- e_user = strdup(e_user); ++ int len = strlen(e_user); ++ char *eUser = (char *)malloc(sizeof(char) * len + 1); ++ memset(eUser, 0, len + 1); ++ strcpy(eUser, e_user); ++ ++ // 释放内存 + out: +- if (users) +- g_strfreev(users); +- if (dbus_error_is_set(&error)) +- dbus_error_free(&error); +- if (message) +- dbus_message_unref(message); +- if (reply) +- dbus_message_unref(reply); +- if (connection) ++ dbus_error_free(&error); ++ // if(message) ++ // dbus_message_unref(message); ++ // if(reply) ++ // dbus_message_unref(reply); ++ if(connection) + dbus_connection_unref(connection); +- return e_user; ++ if(user_conn) ++ dbus_connection_unref(user_conn); ++ return eUser; + } + + char *kdk_system_get_eUser_login_time() + { ++ char *active = NULL; + dbus_uint64_t time_stamp = 0; +- char *login_time = NULL; + +- DBusConnection *connection = NULL; ++ DBusConnection *connection = NULL, *user_conn = NULL; + DBusMessage *message = NULL, *reply = NULL; +- DBusMessageIter iter; ++ DBusError error; ++ DBusMessageIter iter, args; + + // 初始化DBus连接 +- DBusError error; + dbus_error_init(&error); +- + connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error); + if (connection == NULL) + { +@@ -751,7 +780,6 @@ char *kdk_system_get_eUser_login_time() + + // 释放message + dbus_message_unref(message); +- message = NULL; + + // 解析回复消息 + if (!dbus_message_iter_init(reply, &iter) || +@@ -761,44 +789,47 @@ char *kdk_system_get_eUser_login_time() + fprintf(stderr, "DBus reply parsing failed\n"); + goto out; + } +- + // 释放reply + dbus_message_unref(reply); +- reply = NULL; +- +- int element_count = dbus_message_iter_get_element_count(&iter); +- char **users = calloc(element_count + 1, sizeof(char *)); +- if (NULL == users) +- goto out; + ++ // 获取数组长度 获取的长度不对 弃用 ++ // int array_length; + dbus_message_iter_recurse(&iter, &iter); ++ // array_length = dbus_message_iter_get_array_len(&iter); ++ // printf("%d\n", array_length); + +- // 解析返回值 +- // 循环中过程中调用新的dbus接口会导致迭代器iter被清空,但是没细查原因 +- // 先用一个字符串数组存储所有用户的object path +- for (int i = 0; i < element_count; i++) ++ // 解析数组中的每个结构体元素 ++ while (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_INVALID) + { +- char *path = NULL; +- + DBusMessageIter struct_iter; +- dbus_message_iter_recurse(&iter, &struct_iter); +- dbus_message_iter_next(&struct_iter); +- dbus_message_iter_next(&struct_iter); +- dbus_message_iter_get_basic(&struct_iter, &path); + +- users[i] = strdup(path); ++ dbus_uint32_t uid; ++ char *name = NULL, *path = NULL; ++ dbus_message_iter_recurse(&iter, &struct_iter); + +- dbus_message_iter_next(&iter); +- } ++ // dbus_message_iter_get_basic(&struct_iter, &path); // 获取uid + +- char *interface = "org.freedesktop.login1.User"; +- char *state = "State"; +- char *property = "Timestamp"; ++ dbus_message_iter_next(&struct_iter); ++ // dbus_message_iter_get_basic(&struct_iter, &name); // 获取name + +- for (int i = 0; i < element_count; i++) +- { ++ dbus_message_iter_next(&struct_iter); ++ dbus_message_iter_get_basic(&struct_iter, &path); // 获取interface ++ ++ // 获取EUser ++ char *interface = "org.freedesktop.login1.User"; ++ char *state = "State"; ++ char *property = "Timestamp"; ++ ++ user_conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error); ++ if (user_conn == NULL) ++ { ++ fprintf(stderr, "DBus connection error: %s\n", error.message); ++ goto out; ++ } ++ ++ // 创建DBus方法调用消息 + message = dbus_message_new_method_call("org.freedesktop.login1", +- users[i], ++ path, + "org.freedesktop.DBus.Properties", + "Get"); + if (message == NULL) +@@ -807,8 +838,19 @@ char *kdk_system_get_eUser_login_time() + goto out; + } + +- dbus_message_append_args(message, DBUS_TYPE_STRING, &interface, DBUS_TYPE_STRING, &state, DBUS_TYPE_INVALID); ++ //添加入参 ++ dbus_message_iter_init_append(message, &args); ++ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &interface)) ++ { ++ goto out; ++ } ++ ++ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &state)) ++ { ++ goto out; ++ } + ++ // 发送DBus消息并等待回复 + reply = dbus_connection_send_with_reply_and_block(connection, message, -1, &error); + if (reply == NULL) + { +@@ -816,27 +858,26 @@ char *kdk_system_get_eUser_login_time() + goto out; + } + ++ //释放message + dbus_message_unref(message); +- message = NULL; + +- if (!dbus_message_iter_init(reply, &iter) || +- dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT) ++ // 解析回复消息 ++ if (!dbus_message_iter_init(reply, &args) || ++ dbus_message_iter_get_arg_type(&args) != DBUS_TYPE_VARIANT) + { + fprintf(stderr, "DBus reply parsing failed\n"); + goto out; + } +- ++ // 释放reply + dbus_message_unref(reply); +- reply = NULL; +- +- char *active = NULL; +- dbus_message_iter_recurse(&iter, &iter); +- dbus_message_iter_get_basic(&iter, &active); + +- if (0 == strcmp(active, "active")) ++ DBusMessageIter sub; ++ dbus_message_iter_recurse(&args, &sub); ++ dbus_message_iter_get_basic(&sub, &active); ++ if(0 == strcmp(active, "active")) + { + message = dbus_message_new_method_call("org.freedesktop.login1", +- users[i], ++ path, + "org.freedesktop.DBus.Properties", + "Get"); + if (message == NULL) +@@ -845,8 +886,19 @@ char *kdk_system_get_eUser_login_time() + goto out; + } + +- dbus_message_append_args(message, DBUS_TYPE_STRING, &interface, DBUS_TYPE_STRING, &property, DBUS_TYPE_INVALID); ++ // 添加入参 ++ dbus_message_iter_init_append(message, &args); ++ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &interface)) ++ { ++ goto out; ++ } ++ ++ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &property)) ++ { ++ goto out; ++ } + ++ // 发送DBus消息并等待回复 + reply = dbus_connection_send_with_reply_and_block(connection, message, -1, &error); + if (reply == NULL) + { +@@ -854,47 +906,48 @@ char *kdk_system_get_eUser_login_time() + goto out; + } + ++ // 释放message + dbus_message_unref(message); +- message = NULL; + +- if (!dbus_message_iter_init(reply, &iter) || +- dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT) ++ // 解析回复消息 ++ if (!dbus_message_iter_init(reply, &args) || ++ dbus_message_iter_get_arg_type(&args) != DBUS_TYPE_VARIANT) + { + fprintf(stderr, "DBus reply parsing failed\n"); + goto out; + } +- ++ // 释放reply + dbus_message_unref(reply); +- reply = NULL; + +- dbus_message_iter_recurse(&iter, &iter); +- dbus_message_iter_get_basic(&iter, &time_stamp); ++ dbus_message_iter_recurse(&args, &sub); ++ dbus_message_iter_get_basic(&sub, &time_stamp); ++ } + ++ dbus_connection_unref(user_conn); ++ user_conn = NULL; ++ if(0 < time_stamp) + break; +- } ++ dbus_message_iter_next(&iter); + } + +- if (0 == time_stamp) +- goto out; +- + time_t t1 = time_stamp / 1000000; + struct tm *timeDate = localtime(&t1); + +- login_time = calloc(32, sizeof(char)); ++ char *login_time = calloc(32, sizeof(char)); + sprintf(login_time, "%04d-%02d-%02d %02d:%02d:%02d", timeDate->tm_year + 1900, timeDate->tm_mon + 1, + timeDate->tm_mday, timeDate->tm_hour, timeDate->tm_min, timeDate->tm_sec); + ++ // 释放内存 + out: +- if (users) +- g_strfreev(users); +- if (dbus_error_is_set(&error)) +- dbus_error_free(&error); +- if (message) +- dbus_message_unref(message); +- if (reply) +- dbus_message_unref(reply); +- if (connection) ++ dbus_error_free(&error); ++ // if(message) ++ // dbus_message_unref(message); ++ // if(reply) ++ // dbus_message_unref(reply); ++ if(connection) + dbus_connection_unref(connection); ++ if(user_conn) ++ dbus_connection_unref(user_conn); + return login_time; + } + +@@ -2511,193 +2564,3 @@ kdk_loadavg kdk_system_get_loadavg() + } + return loadAvg; + } +- +-static pthread_t thread = 0; +-static volatile int running = 0; +-static char *curr_user = NULL; +-CallBack _callback = NULL; +- +-static void signal_handler(DBusConnection *connection, DBusMessage *message, void *user_data) +-{ +- DBusError err; +- dbus_error_init(&err); +- +- if (dbus_message_is_signal(message, "org.freedesktop.DBus.Properties", "PropertiesChanged")) +- { +- // const char *interface_name; +- DBusMessageIter array_iter, dict_iter, struct_iter, value_iter; +- // const char *property_name; +- const char *session_id, *session_path; +- +- // 迭代到interfacename +- DBusMessageIter iter; +- dbus_message_iter_init(message, &iter); +- // dbus_message_iter_get_basic(&iter, &interface_name); +- +- // 迭代到propertiename +- dbus_message_iter_next(&iter); +- dbus_message_iter_recurse(&iter, &array_iter); +- dbus_message_iter_recurse(&array_iter, &dict_iter); +- // dbus_message_iter_get_basic(&dict_iter, &property_name); +- +- // 迭代到propertievalue +- dbus_message_iter_next(&dict_iter); +- dbus_message_iter_recurse(&dict_iter, &struct_iter); +- dbus_message_iter_recurse(&struct_iter, &value_iter); +- dbus_message_iter_get_basic(&value_iter, &session_id); +- dbus_message_iter_next(&value_iter); +- dbus_message_iter_get_basic(&value_iter, &session_path); +- +- //切换tty会出发信号,切换到tty1 tty2等终端,但这些没有用户登录时,不相应 +- if (0 == strcmp("/", session_path)) +- { +- free(curr_user); +- curr_user = NULL; +- return; +- } +- +- // 创建DBus方法调用消息 +- DBusMessage *msg = dbus_message_new_method_call("org.freedesktop.login1", +- session_path, +- "org.freedesktop.DBus.Properties", +- "Get"); +- char *interface = "org.freedesktop.login1.Session"; +- char *name = "Name"; +- dbus_message_append_args(msg, DBUS_TYPE_STRING, &interface, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID); +- +- // 发送消息并等待响应 +- DBusMessage *reply; +- reply = dbus_connection_send_with_reply_and_block(connection, msg, -1, &err); +- if (dbus_error_is_set(&err)) +- { +- printf("Error sending message: %s\n", err.message); +- dbus_error_free(&err); +- return 1; +- } +- +- // 处理响应 +- const char *response; +- DBusMessageIter reply_iter; +- dbus_message_iter_init(reply, &reply_iter); +- // 移动到variant参数的内部 +- dbus_message_iter_recurse(&reply_iter, &reply_iter); +- dbus_message_iter_get_basic(&reply_iter, &response); +- +- // 释放消息和连接 +- dbus_message_unref(msg); +- dbus_message_unref(reply); +- +- if (0 != strcmp(response, "lightdm")) +- { +- // struct passwd *pwd = getpwnam(response); +- _callback(curr_user, response, user_data); +- free(curr_user); +- curr_user = strdup(response); +- } +- +- } +- +- return; +-} +- +-void *dbus_listener_thread(void *data) +-{ +- DBusConnection *connection; +- DBusError error; +- +- // 初始化DBus错误结构 +- dbus_error_init(&error); +- +- // 建立与DBus系统总线的连接 +- connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error); +- if (dbus_error_is_set(&error)) +- { +- fprintf(stderr, "Connection Error (%s)\n", error.message); +- dbus_error_free(&error); +- pthread_exit(NULL); +- } +- if (connection == NULL) +- { +- fprintf(stderr, "Connection Null\n"); +- pthread_exit(NULL); +- } +- +- // 设置消息处理函数 +- dbus_bus_add_match(connection, +- "type='signal',path='/org/freedesktop/login1/seat/seat0',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged'", +- &error); +- dbus_connection_add_filter(connection, signal_handler, NULL, NULL); +- +- // 循环监听DBus消息 +- while (true) +- { +- if (running) +- dbus_connection_read_write_dispatch(connection, 20); +- else +- { +- dbus_connection_unref(connection); +- pthread_exit(NULL); +- } +- } +- +- return NULL; +-} +- +-int kdk_system_register_switch_user_handle(CallBack call_back, void *user_data) +-{ +- DBusConnection *connection; +- DBusError err; +- +- // 初始化DBus错误结构 +- dbus_error_init(&err); +- +- // 建立与DBus系统总线的连接 +- connection = dbus_bus_get(DBUS_BUS_SYSTEM, &err); +- if (dbus_error_is_set(&err)) +- { +- fprintf(stderr, "Connection Error (%s)\n", err.message); +- dbus_error_free(&err); +- return 1; +- } +- if (connection == NULL) +- { +- fprintf(stderr, "Connection Null\n"); +- return 1; +- } +- +- DBusMessage *msg = dbus_message_new_method_call("org.freedesktop.login1", +- "/org/freedesktop/login1", +- "org.freedesktop.login1.Manager", +- "GetSeat"); +- const char *arg = "seat1"; +- dbus_message_append_args(msg, DBUS_TYPE_STRING, &arg, DBUS_TYPE_INVALID); +- +- DBusMessage *reply; +- reply = dbus_connection_send_with_reply_and_block(connection, msg, -1, &err); +- if (dbus_error_is_set(&err)) +- { +- dbus_error_free(&err); +- } +- else +- return -1; +- +- dbus_message_unref(msg); +- dbus_connection_unref(connection); +- +- char *tmp = kdk_system_get_eUser(); +- curr_user = strdup(tmp); +- running = 1; +- _callback = call_back; +- pthread_create(&thread, NULL, dbus_listener_thread, user_data); +- return 0; +-} +- +-void kdk_system_unregister_switch_user_handle() +-{ +- if (NULL != _callback) +- { +- running = 0; +- _callback = NULL; +- pthread_join(thread, NULL); +- } +-} +diff --git a/src/systeminfo/libkysysinfo.h b/src/systeminfo/libkysysinfo.h +index 5cef7e6..a0030bf 100644 +--- a/src/systeminfo/libkysysinfo.h ++++ b/src/systeminfo/libkysysinfo.h +@@ -337,25 +337,6 @@ extern unsigned int kdk_system_get_thread_nums(); + */ + extern kdk_loadavg kdk_system_get_loadavg(); + +-/** +- * @brief 用户监听事件的回调函数原型 +-*/ +-typedef void (*CallBack)(char *old_user, char *new_user, void *user_data); +- +-/** +- * @brief 注册监听用户切换事件的回调函数 +- * @param call_back 指向回调函数的函数指针 +- * @param user_data 传递给回调函数的用户数据结构指针 +- * +- * @return int 1 成功; 0 失败 +-*/ +-extern int kdk_system_register_switch_user_handle(CallBack call_back, void *user_data); +- +-/** +- * @brief 注销监听用户切换事件的回调函数 +-*/ +-extern void kdk_system_unregister_switch_user_handle(); +- + #ifdef __cplusplus + } + #endif diff --git a/debian/patches/series b/debian/patches/series index 1593cf7..3d8f2d9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -19,3 +19,4 @@ 0019-26155-sdk.patch 0020-.patch 0021-update-changelog.patch +0022-update-changelog.patch