update_engine: Remove dependency on libupdate_engine from the client.
The update_engine_client is a very small DBus client that only
depends on a single utils:: function from the update_engine daemon
codebase. Because of this, it was forced to be linked against many
libraries that it didn't use.
This patch factors out this glib helper function to a new
glib_utils.{cc,h} file and includes only that in the
update_engine_client binary.
BUG=chromium:396440
TEST=FEATURES=test emerge-link update_engine
Change-Id: Icf8d8b3c6ebd22cdb39e6674fb3d9071071ec941
Reviewed-on: https://chromium-review.googlesource.com/209472
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/glib_utils.cc b/glib_utils.cc
new file mode 100644
index 0000000..523a16f
--- /dev/null
+++ b/glib_utils.cc
@@ -0,0 +1,28 @@
+// Copyright 2014 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "update_engine/glib_utils.h"
+
+#include <base/strings/stringprintf.h>
+
+using std::string;
+
+namespace chromeos_update_engine {
+namespace utils {
+
+string GetAndFreeGError(GError** error) {
+ if (!*error) {
+ return "Unknown GLib error.";
+ }
+ string message =
+ base::StringPrintf("GError(%d): %s",
+ (*error)->code,
+ (*error)->message ? (*error)->message : "(unknown)");
+ g_error_free(*error);
+ *error = NULL;
+ return message;
+}
+
+} // namespace utils
+} // namespace chromeos_update_engine