snapuserd: Use gflags for arguments.
This is in preparation for expanding the command-line features of
snapuserd.
Bug: N/A
Test: builds
Change-Id: Id33c4f190dc0f99cd436f0e9a6b1d6ee92e245e4
diff --git a/fs_mgr/libsnapshot/Android.bp b/fs_mgr/libsnapshot/Android.bp
index e32fde0..6948dd1 100644
--- a/fs_mgr/libsnapshot/Android.bp
+++ b/fs_mgr/libsnapshot/Android.bp
@@ -423,10 +423,11 @@
"libbase",
"libbrotli",
"libcutils_sockets",
- "liblog",
"libdm",
- "libz",
+ "libgflags",
+ "liblog",
"libsnapshot_cow",
+ "libz",
],
}
diff --git a/fs_mgr/libsnapshot/cow_snapuserd_test.cpp b/fs_mgr/libsnapshot/cow_snapuserd_test.cpp
index 16d9313..ed67a1c 100644
--- a/fs_mgr/libsnapshot/cow_snapuserd_test.cpp
+++ b/fs_mgr/libsnapshot/cow_snapuserd_test.cpp
@@ -169,7 +169,7 @@
ASSERT_GE(pid, 0);
if (pid == 0) {
std::string arg0 = "/system/bin/snapuserd";
- std::string arg1 = kSnapuserdSocketTest;
+ std::string arg1 = "-socket="s + kSnapuserdSocketTest;
char* const argv[] = {arg0.data(), arg1.data(), nullptr};
ASSERT_GE(execv(arg0.c_str(), argv), 0);
} else {
diff --git a/fs_mgr/libsnapshot/snapuserd_daemon.cpp b/fs_mgr/libsnapshot/snapuserd_daemon.cpp
index 08b5bff..f068547 100644
--- a/fs_mgr/libsnapshot/snapuserd_daemon.cpp
+++ b/fs_mgr/libsnapshot/snapuserd_daemon.cpp
@@ -17,19 +17,21 @@
#include "snapuserd_daemon.h"
#include <android-base/logging.h>
+#include <gflags/gflags.h>
#include <libsnapshot/snapuserd_client.h>
#include "snapuserd_server.h"
+DEFINE_string(socket, android::snapshot::kSnapuserdSocket, "Named socket or socket path.");
+
namespace android {
namespace snapshot {
-bool Daemon::StartServer(const std::string& socketname) {
- if (!server_.Start(socketname)) {
+void Daemon::StartServer() {
+ if (!server_.Start(FLAGS_socket)) {
LOG(ERROR) << "Snapuserd daemon failed to start...";
exit(EXIT_FAILURE);
}
- return true;
}
void Daemon::MaskAllSignalsExceptIntAndTerm() {
@@ -99,11 +101,9 @@
android::snapshot::Daemon& daemon = android::snapshot::Daemon::Instance();
- std::string socket = android::snapshot::kSnapuserdSocket;
- if (argc >= 2) {
- socket = argv[1];
- }
- daemon.StartServer(socket);
+ gflags::ParseCommandLineFlags(&argc, &argv, false);
+
+ daemon.StartServer();
daemon.Run();
return 0;
diff --git a/fs_mgr/libsnapshot/snapuserd_daemon.h b/fs_mgr/libsnapshot/snapuserd_daemon.h
index fc107a3..ab91088 100644
--- a/fs_mgr/libsnapshot/snapuserd_daemon.h
+++ b/fs_mgr/libsnapshot/snapuserd_daemon.h
@@ -32,7 +32,7 @@
return instance;
}
- bool StartServer(const std::string& socketname);
+ void StartServer();
void Run();
void Interrupt();