]> andersk Git - moira.git/blobdiff - clients/blanche/blanche.c
Make tag_member_of_list work for MACHINE members.
[moira.git] / clients / blanche / blanche.c
index 2b78edc451b1df5bf1830672d84c1c6afe3d24b5..d11baad50bfe55f246b7dcf9f9ca807bfdceeefc 100644 (file)
@@ -48,7 +48,7 @@ int showusers, showstrings, showkerberos, showlists, showtags, showmachines;
 int createflag, setinfo, active, public, hidden, maillist, grouplist;
 int nfsgroup, mailman;
 struct member *owner, *memacl;
-char *desc, *newname, *mailman_server;
+char *desc, *newname, *mailman_server, *gid;
 
 /* various member lists */
 struct save_queue *addlist, *dellist, *memberlist, *synclist, *taglist;
@@ -83,7 +83,7 @@ int main(int argc, char **argv)
   noauth = showusers = showstrings = showkerberos = showlists = 0;
   showtags = showmachines = createflag = setinfo = 0;
   active = public = hidden = maillist = grouplist = nfsgroup = mailman = -1;
-  listname = newname = desc = NULL;
+  listname = newname = desc = gid = NULL;
   owner = NULL;
   memacl = NULL;
   addlist = sq_create();
@@ -334,6 +334,17 @@ int main(int argc, char **argv)
              else
                usage(argv);
            }
+         else if (argis("g", "gid"))
+           {
+             if (arg - argv < argc - 1)
+               {
+                 setinfo++;
+                 ++arg;
+                 gid = *arg;
+               }
+             else
+               usage(argv);
+           }
          else
            usage(argv);
        }
@@ -353,7 +364,7 @@ int main(int argc, char **argv)
 
   /* If none of {users,strings,lists,kerberos,machines} specified, 
      turn them all on */
-  if (!(showusers || showstrings || showlists || showkerberos))
+  if (!(showusers || showstrings || showlists || showkerberos || showmachines))
     showusers = showstrings = showlists = showkerberos = showmachines = 1;
 
   /* fire up Moira */
@@ -389,7 +400,12 @@ int main(int argc, char **argv)
       argv[L_HIDDEN] = (hidden == 1) ? "1" : "0";
       argv[L_MAILLIST] = (maillist == 0) ? "0" : "1";
       argv[L_GROUP] = (grouplist == 1) ? "1" : "0";
-      argv[L_GID] = UNIQUE_GID;
+
+      if (gid)
+       argv[L_GID] = gid;
+      else
+       argv[L_GID] = UNIQUE_GID;
+
       argv[L_NFSGROUP] = (nfsgroup == 1) ? "1" : "0";
       argv[L_MAILMAN] = (mailman == 1) ? "1" : "0";
       argv[L_DESC] = desc ? desc : "none";
@@ -497,6 +513,8 @@ int main(int argc, char **argv)
        argv[L_MAILLIST + 1] = maillist ? "1" : "0";
       if (grouplist != -1)
        argv[L_GROUP + 1] = grouplist ? "1" : "0";
+      if (gid)
+       argv[L_GID + 1] = gid;
       if (nfsgroup != -1)
        argv[L_NFSGROUP + 1] = nfsgroup ? "1" : "0";
       if (mailman != -1)
@@ -1013,6 +1031,16 @@ int main(int argc, char **argv)
                      memberstruct->name, listname);
              success = 0;
            }
+       case M_MACHINE:
+         membervec[1] = "MACHINE";
+         status = mr_query("tag_member_of_list", 4, membervec,
+                           NULL, NULL);
+         if (status != MR_SUCCESS)
+           {
+             com_err(whoami, status, "while adding member %s to %s",
+                     memberstruct->name, listname);
+             success = 0;
+           }
        }
     }
 
This page took 0.10473 seconds and 4 git commands to generate.