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
This commit is contained in:
David Anderson 2020-12-13 21:43:07 -08:00
parent 42a04ac3b4
commit 4e67f589de
4 changed files with 13 additions and 12 deletions

View File

@ -423,10 +423,11 @@ cc_defaults {
"libbase",
"libbrotli",
"libcutils_sockets",
"liblog",
"libdm",
"libz",
"libgflags",
"liblog",
"libsnapshot_cow",
"libz",
],
}

View File

@ -169,7 +169,7 @@ void CowSnapuserdTest::StartSnapuserdDaemon() {
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 {

View File

@ -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 @@ int main([[maybe_unused]] int argc, char** argv) {
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;

View File

@ -32,7 +32,7 @@ class Daemon {
return instance;
}
bool StartServer(const std::string& socketname);
void StartServer();
void Run();
void Interrupt();