示例#1
0
文件: utils.c 项目: pingax/pragha
gboolean
nm_is_online ()
{
	GDBusProxy *proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM,
							  G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
							  NULL,
							  NM_DBUS_SERVICE,
							  NM_DBUS_PATH,
							  NM_DBUS_INTERFACE,
							  NULL,
							  NULL);

	if (!proxy)
		return FALSE;

	NMState state = dbus_check_nm_status (proxy);

	g_object_unref(proxy);

	if (state == NM_STATE_CONNECTED_LOCAL ||
	    state == NM_STATE_CONNECTED_SITE ||
	    state == NM_STATE_CONNECTED_GLOBAL)
		return TRUE;

	return FALSE;
}
gboolean
nm_is_online ()
{
	DBusConnection *connection;
	DBusError error;
	NMState state;

	dbus_error_init (&error);
	connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
	if (connection == NULL) {
		g_critical("Error connecting to DBUS_BUS_SYSTEM to get nm status: %s", error.message);
		dbus_error_free (&error);
		return FALSE;
	}

	state = dbus_check_nm_status (connection);

	dbus_connection_unref(connection);

	if (state == NM_STATE_CONNECTED_LOCAL ||
	    state == NM_STATE_CONNECTED_SITE ||
	    state == NM_STATE_CONNECTED_GLOBAL)
		return TRUE;

	return FALSE;
}