]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cauthtool: set auid in data member format instead of as (ignored) text key
authorGreg Farnum <gregf@hq.newdream.net>
Fri, 5 Mar 2010 21:48:04 +0000 (13:48 -0800)
committerGreg Farnum <gregf@hq.newdream.net>
Fri, 5 Mar 2010 23:46:54 +0000 (15:46 -0800)
src/cauthtool.cc

index 7a14b857cfed3bbc041d6263b17be1c68df9e173..07c6bf03aa362d613bdb8bb0fe730fc8a239af55 100644 (file)
@@ -24,7 +24,7 @@ using namespace std;
 
 void usage()
 {
-  cout << " usage: [--create-keyring] [--gen-key] [--name=<name>] [--caps=<filename>] [--list] [--print-key] <filename>" << std::endl;
+  cout << " usage: [--create-keyring] [--gen-key] [--name=<name>] [--set-uid=uid] [--caps=<filename>] [--list] [--print-key] <filename>" << std::endl;
   exit(1);
 }
 
@@ -47,6 +47,8 @@ int main(int argc, const char **argv)
   const char *name = "";
   const char *caps_fn = NULL;
   const char *import_keyring = NULL;
+  bool set_auid = false;
+  __u64 auid = CEPH_AUTH_UID_DEFAULT;
 
   FOR_EACH_ARG(args) {
     if (CONF_ARG_EQ("gen-key", 'g')) {
@@ -65,6 +67,9 @@ int main(int argc, const char **argv)
       CONF_SAFE_SET_ARG_VAL(&create_keyring, OPT_BOOL);
     } else if (CONF_ARG_EQ("import-keyring", '\0')) {
       CONF_SAFE_SET_ARG_VAL(&import_keyring, OPT_STR);
+    } else if (CONF_ARG_EQ("set-uid", 'u')) {
+      CONF_SAFE_SET_ARG_VAL(&auid, OPT_LONGLONG);
+      set_auid = true;
     } else if (!fn) {
       fn = args[i];
     } else 
@@ -157,7 +162,7 @@ int main(int argc, const char **argv)
   }
   if (add_key) {
     if (!name) {
-      cerr << "must speicfy a name to add a key" << std::endl;
+      cerr << "must specify a name to add a key" << std::endl;
       exit(1);
     }
     EntityAuth eauth;
@@ -194,6 +199,14 @@ int main(int argc, const char **argv)
     keyring.set_caps(ename, caps);
     modified = true;
   }
+  if (set_auid) {
+    if (!name) {
+      cerr << "must specify a name to set a uid" << std::endl;
+      exit(1);
+    }
+    keyring.set_uid(ename, auid);
+    modified = true;
+  }
 
   // read commands
   if (list) {