]> andersk Git - moira.git/blobdiff - server/queries2.c
improved DEC version of message about delete key;
[moira.git] / server / queries2.c
index 63270ae133c8a2dff0089215768f06737eb98683..9b96d9523382e0b32acbc233017920722cfd96f5 100644 (file)
@@ -3,8 +3,11 @@
  * $Header$
  *
  * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
  */
 
+#include <mit-copyright.h>
 #include "query.h"
 #include "sms_et.h"
 
@@ -37,22 +40,24 @@ int setup_ufil();
 int setup_dfil();
 int setup_dnfp();
 int setup_dnfq();
+int setup_sshi();
+int setup_akum();
 
 /* Query Followup Routines */
 int followup_fix_modby();
 int followup_ausr();
 int followup_gpob();
 int followup_glin();
-int followup_amtl();
 int followup_anfq();
 int followup_gzcl();
 int followup_gsha();
+int followup_gnfq();
 
 int set_modtime();
 int set_modtime_by_id();
 int set_finger_modtime();
 int set_pobox_modtime();
-int set_mach_modtime();
+int set_uppercase_modtime();
 int set_mach_modtime_by_id();
 int set_cluster_modtime_by_id();
 int set_serverhost_modtime();
@@ -63,6 +68,8 @@ int set_zephyr_modtime();
 /* Special Queries */
 int set_pobox();
 int get_list_info();
+int add_member_to_list();
+int delete_member_from_list();
 int get_ace_use();
 int qualified_get_lists();
 int get_members_of_list();
@@ -72,7 +79,6 @@ int trigger_dcm();
 int count_members_of_list();
 int get_lists_of_member();
 int register_user();
-int add_user_group();
 
 
 \f
@@ -133,6 +139,11 @@ static struct valobj VOuser0[] = {
   {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
 };
 
+static struct valobj VOuser0lock[] = {
+  {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
+  {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
+};
+
 static struct valobj VOmach0[] = {
   {V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
 };
@@ -145,6 +156,10 @@ static struct valobj VOlist0[] = {
   {V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
 };
 
+static struct valobj VOfilsys0[] = {
+  {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+};
+
 static struct valobj VOchar0[] = {
   {V_CHAR, 0},
 };
@@ -160,6 +175,7 @@ static struct valobj VOuser0sort[] = {
 };
 
 static struct valobj VOfilsys0user1[] = {
+  {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
   {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
   {V_ID, 1, USERS, LOGIN, USERS_ID, SMS_USER},
 };
@@ -241,6 +257,7 @@ static char *ausr_fields[] = {
 };
 
 static struct valobj ausr_valobj[] = {
+  {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
   {V_CHAR, 0},
   {V_CHAR, 3},
   {V_CHAR, 4},
@@ -251,7 +268,7 @@ static struct valobj ausr_valobj[] = {
 
 static struct validate ausr_validate = {
   ausr_valobj,
-  6,
+  7,
   LOGIN,
   "u.login = \"%s\"",
   1,
@@ -266,8 +283,8 @@ static char *rusr_fields[] = {
 };
 
 static struct validate rusr_validate = {
-  0,
-  0,
+  ausr_valobj,
+  1,
   0,
   0,
   0,
@@ -284,6 +301,7 @@ static char *uusr_fields[] = {
 };
 
 static struct valobj uusr_valobj[] = {
+    {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
     {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
     {V_RENAME, 1, USERS, LOGIN, USERS_ID, SMS_NOT_UNIQUE},
     {V_CHAR, 4},
@@ -295,7 +313,7 @@ static struct valobj uusr_valobj[] = {
 
 static struct validate uusr_validate = {
   uusr_valobj,
-  7,
+  8,
   0,
   0,
   0,
@@ -311,8 +329,8 @@ static char *uush_fields[] = {
 };
 
 static struct validate uush_validate = {
-  VOuser0,
-  1,
+  VOuser0lock,
+  2,
   0,
   0,
   0,
@@ -328,8 +346,8 @@ static char *uust_fields[] = {
 };
 
 static struct validate uust_validate = {
-  VOuser0,
-  1,
+  VOuser0lock,
+  2,
   0,
   0,
   0,
@@ -344,8 +362,8 @@ static char *dusr_fields[] = {
 };
 
 static struct validate dusr_validate = {
-  VOuser0,
-  1,
+  VOuser0lock,
+  2,
   0,
   0,
   0,
@@ -360,12 +378,13 @@ static char *dubu_fields[] = {
 };
 
 static struct valobj dubu_valobj[] = {
+    {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
     {V_ID, 0, USERS, UID, USERS_ID, SMS_USER}
 };
 
 static struct validate dubu_validate = {
   dubu_valobj,
-  1,
+  2,
   0,
   0,
   0,
@@ -375,6 +394,43 @@ static struct validate dubu_validate = {
   0,
 };
 
+static char *gkum_fields[] = { LOGIN, "kerberos",
+                              LOGIN, "kerberos" };
+
+static char *akum_fields[] = { LOGIN, "kerberos" };
+
+static struct valobj akum_valobj[] =
+{
+    {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
+    {V_ID, 1, "strings", "string", "string_id", SMS_NO_MATCH},
+};
+
+static struct validate akum_validate =
+{
+    akum_valobj,
+    1,
+    USERS_ID,
+    "k.users_id = %d or k.string_id = %d",
+    2,
+    USERS_ID,
+    access_user,
+    setup_akum,
+    0
+};
+
+static struct validate dkum_validate =
+{
+    akum_valobj,
+    2,
+    USERS_ID,
+    "k.users_id = %d and k.string_id = %d",
+    2,
+    USERS_ID,
+    access_user,
+    0,
+    0
+};
+
 static char *gfbl_fields[] = {
   LOGIN,
   LOGIN, "fullname", "nickname", "home_addr",
@@ -402,8 +458,8 @@ static char *ufbl_fields[] = {
 };
 
 static struct validate ufbl_validate = {
-  VOuser0,
-  1,
+  VOuser0lock,
+  2,
   0,
   0,
   0,
@@ -451,6 +507,7 @@ static char *spob_fields[] = {
 };
 
 static struct valobj spob_valobj[] = {
+  {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
   {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
   {V_TYPE, 1, "pobox", 0, 0, SMS_TYPE},
 };
@@ -458,7 +515,7 @@ static struct valobj spob_valobj[] = {
 static struct validate spob_validate = /* SET_POBOX */
 {
   spob_valobj,
-  2,
+  3,
   0,
   0,
   0,
@@ -470,8 +527,8 @@ static struct validate spob_validate =      /* SET_POBOX */
 
 static struct validate spop_validate = /* SET_POBOX_POP */
 {
-  VOuser0,
-  1,
+  VOuser0lock,
+  2,
   0,
   0,
   0,
@@ -483,8 +540,8 @@ static struct validate spop_validate =      /* SET_POBOX_POP */
 
 static struct validate dpob_validate = /* DELETE_POBOX */
 {
-  VOuser0,
-  1,
+  VOuser0lock,
+  2,
   0,
   0,
   0,
@@ -505,19 +562,20 @@ static char *amac_fields[] = {
 
 static struct valobj amac_valobj[] = {
   {V_CHAR, 0},
+  {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
   {V_TYPE, 1, "mac_type", 0, 0, SMS_TYPE},
 };
 
 static struct validate amac_validate = {
   amac_valobj,
-  2,
+  3,
   NAME,
   "m.name = uppercase(\"%s\")",
   1,
   MACH_ID,
   0,
   0,
-  set_mach_modtime,
+  set_uppercase_modtime,
 };
 
 static char *umac_fields[] = {
@@ -526,6 +584,7 @@ static char *umac_fields[] = {
 };
 
 static struct valobj umac_valobj[] = {
+  {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
   {V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
   {V_RENAME, 1, MACHINE, NAME, MACH_ID, SMS_NOT_UNIQUE},
   {V_TYPE, 2, "mac_type", 0, 0, SMS_TYPE},
@@ -533,7 +592,7 @@ static struct valobj umac_valobj[] = {
 
 static struct validate umac_validate = {
   umac_valobj,
-  3,
+  4,
   0,
   0,
   0,
@@ -547,9 +606,14 @@ static char *dmac_fields[] = {
   NAME,
 };
 
+static struct valobj dmac_valobj[] = {
+  {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
+  {V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
+};
+
 static struct validate dmac_validate = {
-  VOmach0,
-  1,
+  dmac_valobj,
+  2,
   0,
   0,
   0,
@@ -568,10 +632,15 @@ static char *aclu_fields[] = {
   NAME, DESC, LOCATION,
 };
   
+static struct valobj aclu_valobj[] = {
+  {V_LOCK, 0, CLUSTER, 0, CLU_ID, SMS_DEADLOCK},
+  {V_CHAR, 0}
+};
+
 static struct validate aclu_validate = /* for aclu  */
 {
-  VOchar0,
-  1,
+  aclu_valobj,
+  2,
   NAME,
   "c.name = \"%s\"",
   1,
@@ -587,6 +656,7 @@ static char *uclu_fields[] = {
 };
 
 static struct valobj uclu_valobj[] = {
+  {V_LOCK, 0, CLUSTER, 0, CLU_ID, SMS_DEADLOCK},
   {V_ID, 0, CLUSTER, NAME, CLU_ID, SMS_CLUSTER},
   {V_RENAME, 1, CLUSTER, NAME, CLU_ID, SMS_NOT_UNIQUE},
 };
@@ -655,7 +725,6 @@ static char *acld_fields[] = {
 static struct valobj acld_valobj[] =
 {
   {V_ID, 0, CLUSTER, NAME, CLU_ID, SMS_CLUSTER},
-  {V_TYPE, 1, "slabel", 0, 0, SMS_TYPE},
   {V_CHAR, 2},
 };
 
@@ -674,7 +743,7 @@ static struct validate acld_validate =      /* ADD_CLUSTER_DATA */
 
 static char *gsin_fields[] = {
   SERVICE,
-  SERVICE, "update_int", "target_file", "script", "dfgen",
+  SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
   TYPE, "enable", "inprogress", "harderror", "errmsg",
   ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
 };
@@ -721,6 +790,7 @@ static char *asin_fields[] = {
 };
 
 static struct valobj asin_valobj[] = {
+  {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
   {V_CHAR, 0},
   {V_TYPE, 4, "service", 0, 0, SMS_TYPE},
   {V_TYPE, 6, ACE_TYPE, 0, 0, SMS_ACE},
@@ -730,35 +800,35 @@ static struct valobj asin_valobj[] = {
 static struct validate asin_validate = /* for asin, usin */
 {
   asin_valobj,
-  4,
+  5,
   NAME,
   "s.name = uppercase(\"%s\")",
   1,
   0,
   0,
   0,
-  set_modtime,
+  set_uppercase_modtime,
 };
 
 static struct validate rsve_validate = {
-  0,
-  0,
+  asin_valobj,
+  1,
   NAME,
   "s.name = uppercase(\"%s\")",
   1,
   0,
   access_service,
   0,
-  set_modtime,
+  set_uppercase_modtime,
 };
 
 static char *ssif_fields[] = {
-  SERVICE, "dfgen", "inprogress", "harderror", "errmsg",
+  SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
 };
 
 static struct validate ssif_validate = {
-  0,
-  0,
+  asin_valobj,
+  1,
   NAME,
   "s.name = uppercase(\"%s\")",
   1,
@@ -773,8 +843,8 @@ static char *dsin_fields[] = {
 };
 
 static struct validate dsin_validate = {
-  0,
-  0,
+  asin_valobj,
+  1,
   NAME,
   "s.name = uppercase(\"%s\")",
   1,
@@ -833,6 +903,7 @@ static char *ashi_fields[] = {
 };
 
 static struct valobj ashi_valobj[] = {
+  {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
   {V_NAME, 0, "servers", NAME, 0, SMS_SERVICE},
   {V_ID, 1, MACHINE, NAME, MACH_ID, SMS_MACHINE},
 };
@@ -840,7 +911,7 @@ static struct valobj ashi_valobj[] = {
 static struct validate ashi_validate = /* ashi & ushi */
 {
   ashi_valobj,
-  2,
+  3,
   SERVICE,
   "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
   2,
@@ -853,7 +924,7 @@ static struct validate ashi_validate = /* ashi & ushi */
 static struct validate rshe_validate = 
 {
   ashi_valobj,
-  2,
+  3,
   SERVICE,
   "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
   2,
@@ -866,7 +937,7 @@ static struct validate rshe_validate =
 static struct validate ssho_validate = 
 {
   ashi_valobj,
-  2,
+  3,
   SERVICE,
   "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
   2,
@@ -883,19 +954,18 @@ static char *sshi_fields[] = {
 
 static struct valobj sshi_valobj[] = {
   {V_NAME, 0, "servers", NAME, 0, SMS_SERVICE},
-  {V_ID, 1, MACHINE, NAME, MACH_ID, SMS_MACHINE},
 };
 
 static struct validate sshi_validate = 
 {
   sshi_valobj,
-  2,
-  SERVICE,
-  "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
-  2,
+  1,
+  0,
+  0,
   0,
   0,
   0,
+  setup_sshi,
   0,
 };
 
@@ -906,7 +976,7 @@ static char *dshi_fields[] = {
 static struct validate dshi_validate = 
 {
   ashi_valobj,
-  2,
+  3,
   SERVICE,
   "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
   2,
@@ -1017,6 +1087,7 @@ static char *afil_fields[] = {
 
 static struct valobj afil_valobj[] = {
   {V_CHAR, 0},
+  {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
   {V_TYPE, 1, FILESYS, 0, 0, SMS_FSTYPE},
   {V_ID, 2, MACHINE, NAME, MACH_ID, SMS_MACHINE},
   {V_CHAR, 3},
@@ -1027,7 +1098,7 @@ static struct valobj afil_valobj[] = {
 
 static struct validate afil_validate = {
   afil_valobj,
-  7,
+  8,
   LABEL,
   "fs.label = \"%s\"",
   1,
@@ -1043,6 +1114,7 @@ static char *ufil_fields[] = {
 };
 
 static struct valobj ufil_valobj[] = {
+  {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
   {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
   {V_RENAME, 1, FILESYS, LABEL, FILSYS_ID, SMS_NOT_UNIQUE},
   {V_TYPE, 2, FILESYS, 0, 0, SMS_FSTYPE},
@@ -1055,7 +1127,7 @@ static struct valobj ufil_valobj[] = {
 
 static struct validate ufil_validate = {
   ufil_valobj,
-  8,
+  9,
   LABEL,
   "fs.filsys_id = %d",
   1,
@@ -1070,12 +1142,13 @@ static char *dfil_fields[] = {
 };
 
 static struct valobj dfil_valobj[] = {
+  {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
   {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
 };
 
 static struct validate dfil_validate = {
   dfil_valobj,
-  1,
+  2,
   "label",
   "fs.filsys_id = %d",
   1,
@@ -1085,6 +1158,46 @@ static struct validate dfil_validate = {
   0,
 };
 
+static char *gfgm_fields[] = {
+    "fsgroup", FILESYS, "sortkey"
+};
+
+static struct valobj gfgm_valobj[] = {
+    {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+    {V_SORT, 1},
+    {V_SORT, 0},
+};
+
+static struct validate gfgm_validate = {
+    gfgm_valobj,
+    3,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+    0,
+};
+
+static struct valobj aftg_valobj[] = {
+    {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
+    {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+    {V_ID, 1, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+};
+
+static struct validate aftg_validate = {
+    aftg_valobj,
+    3,
+    "group_id",
+    "fg.group_id = %d and fg.filsys_id = %d",
+    2,
+    0,
+    0,
+    0,
+    0,
+};
+
 static char *ganf_fields[] = {
   MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
 };
@@ -1158,7 +1271,7 @@ static struct validate gnfq_validate = {
   0,
   access_filesys,
   0,
-  followup_fix_modby,
+  followup_gnfq,
 };
 
 static char *gnqp_fields[] = {
@@ -1172,7 +1285,7 @@ static char *anfq_fields[] = {
 
 static struct validate anfq_validate = {
   VOfilsys0user1,
-  2,
+  3,
   USERS_ID,
   "nq.filsys_id = %d and nq.users_id = %d",
   2,
@@ -1184,7 +1297,7 @@ static struct validate anfq_validate = {
 
 static struct validate unfq_validate = {
   VOfilsys0user1,
-  2,
+  3,
   USERS_ID,
   "nq.filsys_id = %d and nq.users_id = %d",
   2,
@@ -1196,7 +1309,7 @@ static struct validate unfq_validate = {
 
 static struct validate dnfq_validate = {
   VOfilsys0user1,
-  2,
+  3,
   USERS_ID,
   "nq.filsys_id = %d and nq.users_id = %d",
   2,
@@ -1230,6 +1343,7 @@ static char *alis_fields[] = {
 };
 
 static struct valobj alis_valobj[] = {
+  {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
   {V_CHAR, 0},
   {V_TYPE, 7, ACE_TYPE, 0, 0, SMS_ACE},
   {V_TYPEDATA, 8, 0, 0, LIST_ID, SMS_ACE},
@@ -1237,7 +1351,7 @@ static struct valobj alis_valobj[] = {
 
 static struct validate alis_validate = {
   alis_valobj,
-  3,
+  4,
   NAME,
   "l.name = \"%s\"",
   1,
@@ -1254,6 +1368,7 @@ static char *ulis_fields[] = {
 };
 
 static struct valobj ulis_valobj[] = {
+  {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
   {V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
   {V_RENAME, 1, LIST, NAME, LIST_ID, SMS_NOT_UNIQUE},
   {V_TYPE, 8, ACE_TYPE, 0, 0, SMS_ACE},
@@ -1262,7 +1377,7 @@ static struct valobj ulis_valobj[] = {
 
 static struct validate ulis_validate = {
   ulis_valobj,
-  4,
+  5,
   NAME,
   "l.list_id = %d",
   1,
@@ -1293,22 +1408,36 @@ static char *amtl_fields[] = {
 };
 
 static struct valobj amtl_valobj[] = {
+  {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
   {V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
   {V_TYPE, 1, "member", 0, 0, SMS_TYPE},
   {V_TYPEDATA, 2, 0, 0, 0, SMS_NO_MATCH},
 };
 
-static struct validate amtl_validate = /* for amtl and dmfl */
+static struct validate amtl_validate =
 {
   amtl_valobj,
-  3,
-  "member_id",
-  "m.list_id = %d and m.member_type = \"%s\" and m.member_id = %d",
-  3,
+  4,
+  0,
+  0,
+  0,
+  0,
+  access_list,
+  0,
+  add_member_to_list,
+};
+
+static struct validate dmfl_validate =
+{
+  amtl_valobj,
+  4,
+  0,
+  0,
+  0,
   0,
   access_list,
   0,
-  followup_amtl,
+  delete_member_from_list,
 };
 
 static char *gaus_fields[] = {
@@ -1415,22 +1544,6 @@ static struct validate cmol_validate = {
   count_members_of_list,
 };
 
-static char *augr_fields[] = {
-  LOGIN,
-};
-
-static struct validate augr_validate = {
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  0,
-  add_user_group,
-};
-
 static char *gzcl_fields[] = {
     CLASS,
     CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
@@ -1525,16 +1638,61 @@ static char *gasv_fields[] = {
 
 static char *gpcp_fields[] = {
     "printer",
-    "printer", "printcap", MOD1, MOD2, MOD3,
+    "printer", "spooling_host", "spool_directory", "rprinter", "comments",
+    MOD1, MOD2, MOD3,
 };
 
 static char *apcp_fields[] = {
-    "printer", "printcap", MOD1, MOD2, MOD3,
+    "printer", "spooling_host", "spool_directory", "rprinter", "comments",
+    MOD1, MOD2, MOD3,
+};
+
+static struct valobj apcp_valobj[] = {
+    {V_CHAR, 0},
+    {V_ID, 1, MACHINE, NAME, MACH_ID, SMS_MACHINE},
 };
 
 static struct validate apcp_validate = {
-  VOchar0,
+  apcp_valobj,
+  2,
+  NAME,
+  "p.name = \"%s\"",
   1,
+  0,
+  0,
+  0,
+  set_modtime,
+};
+
+static struct validate dpcp_validate = {
+  0,
+  0,
+  NAME,
+  "p.name = \"%s\"",
+  1,
+  0,
+  0,
+  0,
+  0,
+};
+
+static char *gpdm_fields[] = {
+    NAME,
+    NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
+};
+
+static char *apdm_fields[] = {
+    NAME, "rpcnum", "host"
+};
+
+static struct valobj apdm_valobj[] = {
+    {V_CHAR, 0},
+    {V_ID, 2, MACHINE, NAME, MACH_ID, SMS_MACHINE},
+};
+
+static struct validate apdm_validate = {
+  apdm_valobj,
+  2,
   NAME,
   "p.name = \"%s\"",
   1,
@@ -1544,6 +1702,18 @@ static struct validate apcp_validate = {
   set_modtime,
 };
 
+static struct validate dpdm_validate = {
+  0,
+  0,
+  NAME,
+  "p.name = \"%s\"",
+  1,
+  0,
+  0,
+  0,
+  0,
+};
+
 static char *gali_fields[] = {
   NAME, TYPE, "trans",
   NAME, TYPE, "trans",
@@ -1659,7 +1829,7 @@ struct query Queries2[] = {
     "%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle",
     galo_fields,
     6,
-    "u.status == 1",
+    "u.status = 1",
     0,
     0,
   },
@@ -1844,6 +2014,51 @@ struct query Queries2[] = {
     &dubu_validate,
   },
 
+  {
+    /* Q_GKUM - GET_KERBEROS_USER_MAP */
+    "get_kerberos_user_map",
+    "gkum",
+    RETRIEVE,
+    "k",
+    "krbmap",
+    "%c = users.login, %c = strings.string",
+    gkum_fields,
+    2,
+    "users.login = \"%s\" and strings.string = \"%s\" and k.users_id = users.users_id and k.string_id = strings.string_id",
+    2,
+    &VDsort2,
+  },
+
+  {
+    /* Q_AKUM - ADD_KERBEROS_USER_MAP */
+    "add_kerberos_user_map",
+    "akum",
+    APPEND,
+    "k",
+    "krbmap",
+    "users_id = %i4, string_id = %i4",
+    akum_fields,
+    2,
+    0,
+    0,
+    &akum_validate,
+  },
+
+  {
+    /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
+    "delete_kerberos_user_map",
+    "dkum",
+    DELETE,
+    "k",
+    "krbmap",
+    0,
+    akum_fields,
+    0,
+    "k.users_id = %d and k.string_id = %d",
+    2,
+    &dkum_validate,
+  },
+
   {
     /* Q_GFBL - GET_FINGER_BY_LOGIN */
     "get_finger_by_login",
@@ -2196,9 +2411,9 @@ struct query Queries2[] = {
     RETRIEVE,
     "s",
     "servers",
-    "%c = s.name, %c = text(s.update_int), %c = s.target_file, %c = s.script, %c = text(s.dfgen), %c = s.type, %c = text(s.enable), %c = text(s.inprogress), %c = text(s.harderror), %c = s.errmsg, %c = s.acl_type, %c = text(s.acl_id), %c = s.modtime, %c = text(s.modby), %c = s.modwith",
+    "%c = s.name, %c = text(s.update_int), %c = s.target_file, %c = s.script, %c = text(s.dfgen), %c = text(s.dfcheck), %c = s.type, %c = text(s.enable), %c = text(s.inprogress), %c = text(s.harderror), %c = s.errmsg, %c = s.acl_type, %c = text(s.acl_id), %c = s.modtime, %c = text(s.modby), %c = s.modwith",
     gsin_fields,
-    15,
+    16,
     "s.name = uppercase(\"%s\")",
     1,
     &gsin_validate,
@@ -2256,7 +2471,7 @@ struct query Queries2[] = {
     UPDATE,
     "s",
     "servers",
-    "harderror = 0",
+    "harderror = 0, dfcheck = s.dfgen",
     dsin_fields,
     0,
     "s.name = uppercase(\"%s\")",
@@ -2271,9 +2486,9 @@ struct query Queries2[] = {
     UPDATE,
     "s",
     "servers",
-    "dfgen = int4(%c), inprogress = int1(%c), harderror = int1(%c), errmsg = %c",
+    "dfgen = int4(%c), dfcheck = int4(%c), inprogress = int1(%c), harderror = int1(%c), errmsg = %c",
     ssif_fields,
-    4,
+    5,
     "s.name = uppercase(\"%s\")",
     1,
     &ssif_validate,
@@ -2389,12 +2604,12 @@ struct query Queries2[] = {
     "set_server_host_internal",
     "sshi",
     UPDATE,
-    "sh",
+    "s",
     "serverhosts",
     "override = int1(%c), success = int1(%c), inprogress = int1(%c), hosterror = int1(%c), hosterrmsg = %c, ltt = int4(%c), lts = int4(%c)",
     sshi_fields,
     7,
-    "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
+    "s.service = uppercase(\"%s\") and s.mach_id = machine.mach_id and machine.name = \"%s\"",
     2,
     &sshi_validate,
   },
@@ -2594,6 +2809,51 @@ struct query Queries2[] = {
     &dfil_validate,
   },
 
+  {
+    /* Q_GFGM - GET_FSGROUOP_MEMBERS */
+    "get_fsgroup_members",
+    "gfgm",
+    RETRIEVE,
+    "fg",
+    "fsgroup",
+    "%c = filesys.label, %c = fg.key",
+    gfgm_fields,
+    2,
+    "fg.group_id = %d and filesys.filsys_id = fg.filsys_id",
+    1,
+    &gfgm_validate,
+  },
+
+  {
+    /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
+    "add_filesys_to_fsgroup",
+    "aftg",
+    APPEND,
+    "fg",
+    "fsgroup",
+    "group_id = filesys.filsys_id, filsys_id = %i4, key = %c",
+    gfgm_fields,
+    2,
+    "filesys.filsys_id = %d and filesys.type = \"FSGROUP\"",
+    1,
+    &aftg_validate,
+  },
+
+  {
+    /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
+    "remove_filesys_from_fsgroup",
+    "rffg",
+    DELETE,
+    "fg",
+    "fsgroup",
+    (char *)0,
+    gfgm_fields,
+    0,
+    "fg.group_id = %d and fg.filsys_id = %d",
+    2,
+    &aftg_validate,
+  },
+
   {
     /* Q_GANF - GET_ALL_NFSPHYS */
     "get_all_nfsphys",
@@ -2691,10 +2951,10 @@ struct query Queries2[] = {
     RETRIEVE,
     "nq",
     "nfsquota",
-    "%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = nfsphys.dir, %c = machine.name, %c = nq.modtime, %c = text(nq.modby), %c = nq.modwith",
+    "%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = text(nq.phys_id), %c = machine.name, %c = nq.modtime, %c = text(nq.modby), %c = nq.modwith",
     gnfq_fields,
     8,
-    "filesys.label = \"%s\" and users.users_id = %d and filesys.phys_id = nfsphys.nfsphys_id and machine.mach_id = filesys.mach_id and users.users_id = nq.users_id and filesys.filsys_id = nq.filsys_id",
+    "filesys.label = \"%s\" and nq.users_id = %d and filesys.filsys_id = nq.filsys_id and machine.mach_id = filesys.mach_id and users.users_id = nq.users_id",
     2,
     &gnfq_validate,
   },
@@ -2709,7 +2969,7 @@ struct query Queries2[] = {
     "%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = nfsphys.dir, %c = machine.name",
     gnqp_fields,
     5,
-    "filesys.mach_id = %d and nfsphys.dir = \"%s\" and nq.filsys_id = filesys.filsys_id and nfsphys.nfsphys_id = filesys.phys_id and users.users_id = nq.users_id and machine.mach_id = filesys.mach_id",
+    "nfsphys.mach_id = %d and nfsphys.dir = \"%s\" and nq.phys_id = nfsphys.nfsphys_id and filesys.filsys_id = nq.filsys_id and users.users_id = nq.users_id and machine.mach_id = nfsphys.mach_id",
     2,
     &VDmach,
   },
@@ -2721,11 +2981,11 @@ struct query Queries2[] = {
     APPEND,
     "nq",
     "nfsquota",
-    "filsys_id = %i4, users_id = %i4, quota = int4(%c)",
+    "filsys_id = filesys.filsys_id, users_id = %i4, quota = int4(%c), phys_id = filesys.phys_id",
     anfq_fields,
-    3,
-    (char *)0,
-    0,
+    2,
+    "filesys.filsys_id = %d",
+    1,
     &anfq_validate,
   },
 
@@ -2839,9 +3099,9 @@ struct query Queries2[] = {
     "add_member_to_list",
     "amtl",
     APPEND,
-    "m",
-    "members",
-    "list_id=%i4, member_type=%c, member_id=%i4",
+    0,
+    "imembers",
+    0,
     amtl_fields,
     3,
     (char *)0,
@@ -2854,14 +3114,14 @@ struct query Queries2[] = {
     "delete_member_from_list",
     "dmfl",
     DELETE,
-    "m",
-    "members",
+    0,
+    "imembers",
     (char *)0,
     amtl_fields,
     0,
-    "m.list_id = %d and m.member_type = \"%s\" and m.member_id = %d",
+    0,
     3,
-    &amtl_validate,
+    &dmfl_validate,
   },
 
   {
@@ -2900,7 +3160,7 @@ struct query Queries2[] = {
     "gmol",
     RETRIEVE,
     (char *)0,
-    "members",
+    "imembers",
     (char *)0,
     gmol_fields,
     0,
@@ -2915,7 +3175,7 @@ struct query Queries2[] = {
     "glom",
     RETRIEVE,
     0,
-    "members",
+    "imembers",
     0,
     glom_fields,
     6,
@@ -2930,7 +3190,7 @@ struct query Queries2[] = {
     "cmol",
     RETRIEVE,
     0,
-    "members",
+    "imembers",
     0,
     cmol_fields,
     1,
@@ -2939,21 +3199,6 @@ struct query Queries2[] = {
     &cmol_validate,
   },
 
-  {
-    /* Q_AUGR - ADD_USER_GROUP */
-    "add_user_group",
-    "augr",
-    APPEND,
-    (char *)0,
-    (char *)0,
-    (char *)0,
-    augr_fields,
-    1,
-    (char *)0,
-    0,
-    &augr_validate,
-  },    
-
   {
     /* Q_GZCL - GET_ZEPHYR_CLASS */
     "get_zephyr_class",
@@ -3066,10 +3311,10 @@ struct query Queries2[] = {
     RETRIEVE,
     "p",
     "printcap",
-    "%c = p.name, %c = p.pcap, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
+    "%c = p.name, %c = machine.name, %c = p.dir, %c = p.rp, %c = p.comments, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
     gpcp_fields,
-    5,
-    "p.name = \"%s\"",
+    8,
+    "p.name = \"%s\" and machine.mach_id = p.mach_id",
     1,
     &VDsortf,
   },
@@ -3081,9 +3326,9 @@ struct query Queries2[] = {
     APPEND,
     "p",
     "printcap",
-    "name = %c, pcap = %c",
+    "name = %c, mach_id = %i4, dir = %c, rp = %c, comments = %c",
     apcp_fields,
-    2,
+    5,
     0,
     0,
     &apcp_validate,
@@ -3101,7 +3346,52 @@ struct query Queries2[] = {
     0,
     "p.name = \"%s\"",
     1,
-    &apcp_validate,
+    &dpcp_validate,
+  },
+
+  {
+    /* Q_GPDM - GET_PALLADIUM */
+    "get_palladium",
+    "gpdm",
+    RETRIEVE,
+    "p",
+    "palladium",
+    "%c = p.name, %c = text(p.ident), %c = machine.name, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
+    gpdm_fields,
+    6,
+    "p.name = \"%s\" and machine.mach_id = p.mach_id",
+    1,
+    &VDsortf,
+  },
+
+  {
+    /* Q_APDM - ADD_PALLADIUM */
+    "add_palladium",
+    "apdm",
+    APPEND,
+    "p",
+    "palladium",
+    "name = %c, ident = int4(%c), mach_id = %i4",
+    apdm_fields,
+    3,
+    0,
+    0,
+    &apdm_validate,
+  },
+
+  {
+    /* Q_DPDM - DELETE_PALLADIUM */
+    "delete_palladium",
+    "dpdm",
+    DELETE,
+    "p",
+    "palladium",
+    0,
+    apdm_fields,
+    0,
+    "p.name = \"%s\"",
+    1,
+    &dpdm_validate,
   },
 
   {
This page took 0.468631 seconds and 4 git commands to generate.