api,manager: new 'Version' property
This string shows the runtime version of the ModemManager daemon. https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/94
This commit is contained in:

committed by
Dan Williams

parent
d0bb8d1d50
commit
c7af14cc80
@@ -51,6 +51,7 @@ typedef struct {
|
|||||||
static Context *ctx;
|
static Context *ctx;
|
||||||
|
|
||||||
/* Options */
|
/* Options */
|
||||||
|
static gboolean get_daemon_version_flag;
|
||||||
static gboolean list_modems_flag;
|
static gboolean list_modems_flag;
|
||||||
static gboolean monitor_modems_flag;
|
static gboolean monitor_modems_flag;
|
||||||
static gboolean scan_modems_flag;
|
static gboolean scan_modems_flag;
|
||||||
@@ -62,6 +63,10 @@ static gboolean report_kernel_event_auto_scan;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static GOptionEntry entries[] = {
|
static GOptionEntry entries[] = {
|
||||||
|
{ "get-daemon-version", 'B', 0, G_OPTION_ARG_NONE, &get_daemon_version_flag,
|
||||||
|
"Get ModemManager daemon version",
|
||||||
|
NULL
|
||||||
|
},
|
||||||
{ "set-logging", 'G', 0, G_OPTION_ARG_STRING, &set_logging_str,
|
{ "set-logging", 'G', 0, G_OPTION_ARG_STRING, &set_logging_str,
|
||||||
"Set logging level in the ModemManager daemon",
|
"Set logging level in the ModemManager daemon",
|
||||||
"[ERR,WARN,INFO,DEBUG]",
|
"[ERR,WARN,INFO,DEBUG]",
|
||||||
@@ -116,7 +121,8 @@ mmcli_manager_options_enabled (void)
|
|||||||
if (checked)
|
if (checked)
|
||||||
return !!n_actions;
|
return !!n_actions;
|
||||||
|
|
||||||
n_actions = (list_modems_flag +
|
n_actions = (get_daemon_version_flag +
|
||||||
|
list_modems_flag +
|
||||||
monitor_modems_flag +
|
monitor_modems_flag +
|
||||||
scan_modems_flag +
|
scan_modems_flag +
|
||||||
!!set_logging_str +
|
!!set_logging_str +
|
||||||
@@ -131,7 +137,9 @@ mmcli_manager_options_enabled (void)
|
|||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (monitor_modems_flag) {
|
if (get_daemon_version_flag)
|
||||||
|
mmcli_force_sync_operation ();
|
||||||
|
else if (monitor_modems_flag) {
|
||||||
if (mmcli_output_get () != MMC_OUTPUT_TYPE_HUMAN) {
|
if (mmcli_output_get () != MMC_OUTPUT_TYPE_HUMAN) {
|
||||||
g_printerr ("error: modem monitoring not available in keyvalue output\n");
|
g_printerr ("error: modem monitoring not available in keyvalue output\n");
|
||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
@@ -495,6 +503,12 @@ mmcli_manager_run_synchronous (GDBusConnection *connection)
|
|||||||
ctx = g_new0 (Context, 1);
|
ctx = g_new0 (Context, 1);
|
||||||
ctx->manager = mmcli_get_manager_sync (connection);
|
ctx->manager = mmcli_get_manager_sync (connection);
|
||||||
|
|
||||||
|
/* Get daemon version? */
|
||||||
|
if (get_daemon_version_flag) {
|
||||||
|
g_print ("ModemManager daemon %s running\n", mm_manager_get_version (ctx->manager));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* Setup operation timeout */
|
/* Setup operation timeout */
|
||||||
mmcli_force_operation_timeout (mm_manager_peek_proxy (ctx->manager));
|
mmcli_force_operation_timeout (mm_manager_peek_proxy (ctx->manager));
|
||||||
|
|
||||||
|
@@ -14,6 +14,7 @@ mm_manager_new
|
|||||||
mm_manager_new_finish
|
mm_manager_new_finish
|
||||||
mm_manager_new_sync
|
mm_manager_new_sync
|
||||||
<SUBSECTION Methods>
|
<SUBSECTION Methods>
|
||||||
|
mm_manager_get_version
|
||||||
mm_manager_scan_devices
|
mm_manager_scan_devices
|
||||||
mm_manager_scan_devices_finish
|
mm_manager_scan_devices_finish
|
||||||
mm_manager_scan_devices_sync
|
mm_manager_scan_devices_sync
|
||||||
|
@@ -106,5 +106,12 @@
|
|||||||
<arg name="properties" type="a{sv}" direction="in" />
|
<arg name="properties" type="a{sv}" direction="in" />
|
||||||
</method>
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Version:
|
||||||
|
|
||||||
|
The runtime version of the ModemManager daemon.
|
||||||
|
-->
|
||||||
|
<property name="Version" type="s" access="read" />
|
||||||
|
|
||||||
</interface>
|
</interface>
|
||||||
</node>
|
</node>
|
||||||
|
@@ -17,14 +17,13 @@
|
|||||||
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
* Boston, MA 02110-1301 USA.
|
* Boston, MA 02110-1301 USA.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 - 2012 Aleksander Morgado <aleksander@gnu.org>
|
|
||||||
* Copyright (C) 2011 - 2012 Google, Inc.
|
* Copyright (C) 2011 - 2012 Google, Inc.
|
||||||
*
|
* Copyright (C) 2011 - 2018 Aleksander Morgado <aleksander@aleksander.es>
|
||||||
* Author: Aleksander Morgado <aleksander@lanedo.com>
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ModemManager.h>
|
#include <ModemManager.h>
|
||||||
|
|
||||||
|
#include "mm-helpers.h"
|
||||||
#include "mm-errors-types.h"
|
#include "mm-errors-types.h"
|
||||||
#include "mm-gdbus-manager.h"
|
#include "mm-gdbus-manager.h"
|
||||||
#include "mm-manager.h"
|
#include "mm-manager.h"
|
||||||
@@ -265,6 +264,30 @@ mm_manager_get_proxy (MMManager *manager)
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* mm_manager_get_version:
|
||||||
|
* @manager: A #MMManager.
|
||||||
|
*
|
||||||
|
* Gets the ModemManager version, as reported by the daemon.
|
||||||
|
*
|
||||||
|
* It is safe to assume this value never changes during runtime.
|
||||||
|
*
|
||||||
|
* Returns: (transfer none): The version, or %NULL if none available. Do not free the returned value, it belongs to @self.
|
||||||
|
*/
|
||||||
|
const gchar *
|
||||||
|
mm_manager_get_version (MMManager *manager)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (MM_IS_MANAGER (manager), NULL);
|
||||||
|
|
||||||
|
if (!ensure_modem_manager1_proxy (manager, NULL))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
RETURN_NON_EMPTY_CONSTANT_STRING (
|
||||||
|
mm_gdbus_org_freedesktop_modem_manager1_get_version (manager->priv->manager_iface_proxy));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mm_manager_set_logging_finish:
|
* mm_manager_set_logging_finish:
|
||||||
* @manager: A #MMManager.
|
* @manager: A #MMManager.
|
||||||
|
@@ -85,6 +85,8 @@ MMManager *mm_manager_new_sync (
|
|||||||
GDBusProxy *mm_manager_peek_proxy (MMManager *manager);
|
GDBusProxy *mm_manager_peek_proxy (MMManager *manager);
|
||||||
GDBusProxy *mm_manager_get_proxy (MMManager *manager);
|
GDBusProxy *mm_manager_get_proxy (MMManager *manager);
|
||||||
|
|
||||||
|
const gchar *mm_manager_get_version (MMManager *manager);
|
||||||
|
|
||||||
void mm_manager_set_logging (MMManager *manager,
|
void mm_manager_set_logging (MMManager *manager,
|
||||||
const gchar *level,
|
const gchar *level,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
|
@@ -36,6 +36,7 @@
|
|||||||
#include <mm-gdbus-manager.h>
|
#include <mm-gdbus-manager.h>
|
||||||
#include <mm-gdbus-test.h>
|
#include <mm-gdbus-test.h>
|
||||||
|
|
||||||
|
#include "mm-context.h"
|
||||||
#include "mm-base-manager.h"
|
#include "mm-base-manager.h"
|
||||||
#include "mm-daemon-enums-types.h"
|
#include "mm-daemon-enums-types.h"
|
||||||
#include "mm-device.h"
|
#include "mm-device.h"
|
||||||
@@ -988,6 +989,7 @@ mm_base_manager_new (GDBusConnection *connection,
|
|||||||
MM_BASE_MANAGER_FILTER_POLICY, filter_policy,
|
MM_BASE_MANAGER_FILTER_POLICY, filter_policy,
|
||||||
MM_BASE_MANAGER_INITIAL_KERNEL_EVENTS, initial_kernel_events,
|
MM_BASE_MANAGER_INITIAL_KERNEL_EVENTS, initial_kernel_events,
|
||||||
MM_BASE_MANAGER_ENABLE_TEST, enable_test,
|
MM_BASE_MANAGER_ENABLE_TEST, enable_test,
|
||||||
|
"version", MM_DIST_VERSION,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user