From 58a0f384bd24a5bb0efb646e6e98668d0482a4f9 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Wed, 12 Jan 2011 14:51:12 -0800 Subject: [PATCH] cauthtool: default keyring format is plaintext, add --bin --- src/cauthtool.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/cauthtool.cc b/src/cauthtool.cc index cc7fccb834ebc..52427dc921f72 100644 --- a/src/cauthtool.cc +++ b/src/cauthtool.cc @@ -22,6 +22,8 @@ using namespace std; #include "auth/Auth.h" #include "auth/KeyRing.h" +#include + void usage() { cout << " usage: [--create-keyring] [--gen-key] [--name=] [--set-uid=uid] [--caps=] [--list] [--print-key] " << std::endl; @@ -54,6 +56,7 @@ int main(int argc, const char **argv) uint64_t auid = CEPH_AUTH_UID_DEFAULT; const char *name = g_conf.name; map caps; + bool bin_keyring = false; FOR_EACH_ARG(args) { if (CONF_ARG_EQ("gen-key", 'g')) { @@ -80,6 +83,8 @@ int main(int argc, const char **argv) } else if (CONF_ARG_EQ("set-uid", 'u')) { CONF_SAFE_SET_ARG_VAL(&auid, OPT_LONGLONG); set_auid = true; + } else if (CONF_ARG_EQ("bin", 'b')) { + CONF_SAFE_SET_ARG_VAL(&bin_keyring, OPT_BOOL); } else if (!fn) { fn = args[i]; } else @@ -248,7 +253,15 @@ int main(int argc, const char **argv) // write result? if (modified) { bufferlist bl; - ::encode(keyring, bl); + if (bin_keyring) { + ::encode(keyring, bl); + } else { + std::ostrstream os; + keyring.print(os); + const char *str = os.str(); + if (str) + bl.append(str, strlen(str) + 1); + } r = bl.write_file(fn, 0600); if (r < 0) { cerr << "could not write " << fn << std::endl; -- 2.39.5