1 /* This file defines the query dispatch table for version 2 of the protocol
5 * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
6 * For copying and distribution information, please see the file
10 #include <mit-copyright.h>
11 #include "mr_server.h"
18 /* Specialized Support Query Routines */
20 /* Special Access Check Routines */
24 int access_visible_list();
25 int access_vis_list_by_name();
34 /* Query Setup Routines */
36 int prefetch_filesys();
59 /* Query Followup Routines */
60 int followup_fix_modby();
76 int set_modtime_by_id();
77 int set_finger_modtime();
78 int set_pobox_modtime();
79 int set_uppercase_modtime();
80 int set_mach_modtime_by_id();
81 int set_cluster_modtime_by_id();
82 int set_serverhost_modtime();
83 int set_nfsphys_modtime();
84 int set_filesys_modtime();
85 int set_zephyr_modtime();
90 int add_member_to_list();
91 int delete_member_from_list();
93 int qualified_get_lists();
94 int get_members_of_list();
95 int get_end_members_of_list();
96 int qualified_get_server();
97 int qualified_get_serverhost();
99 int count_members_of_list();
100 int get_lists_of_member();
106 /* String compression
107 * These are commonly used strings in the table, defined here so that
108 * they can be shared.
111 static char ACE_NAME[] = "ace_name";
112 static char ACE_TYPE[] = "ace_type";
113 static char ADDRESS[] = "address";
114 static char ALIAS[] = "alias";
115 static char CLASS[] = "class";
116 static char CLU_ID[] = "clu_id";
117 static char CLUSTER[] = "clusters";
118 static char COMMENTS[] = "comments";
119 static char DESC[] = "description";
120 static char DEVICE[] = "device";
121 static char DIR[] = "dir";
122 static char FILESYS[] = "filesys";
123 static char FILSYS_ID[] = "filsys_id";
124 static char FIRST[] = "first";
125 static char HOSTACCESS[] = "hostaccess";
126 static char LABEL[] = "label";
127 static char LAST[] = "last";
128 static char LIST[] = "list";
129 static char LIST_ID[] = "list_id";
130 static char LOCATION[] = "location";
131 static char LOGIN[] = "login";
132 static char MACH_ID[] = "mach_id";
133 static char MACHINE[] = "machine";
134 static char MIDDLE[] = "middle";
135 static char MIT_ID[] = "clearid";
136 static char MOD1[] = "modtime";
137 static char MOD2[] = "modby";
138 static char MOD3[] = "modwith";
139 static char NAME[] = "name";
140 static char PRINTCAP[] = "printcap";
141 static char QUOTA[] = "quota";
142 static char QUOTA_TYPE[] = "quota_type";
143 static char SECURE[] = "secure";
144 static char SERVICE[] = "service";
145 static char SERVERS[] = "servers";
146 static char SHELL[] = "shell";
147 static char SIGNATURE[] = "signature";
148 static char SNET_ID[] = "snet_id";
149 static char SUBNET[] = "subnet";
150 static char STATUS[] = "status";
151 static char TYPE[] = "type";
152 static char USERS[] = "users";
153 static char USERS_ID[] = "users_id";
154 static char UID[] = "unix_uid";
155 static char ZEPH[] = "zephyr";
156 static char ZEPH_ID[] = "xmt_id";
159 char *table_name[] = {
160 "none", USERS, "krbmap", MACHINE, "hostalias", SUBNET, CLUSTER,
161 "mcmap", "svc", LIST, "imembers", SERVERS, "serverhosts", FILESYS,
162 "fsgroup", "nfsphys", "quota", ZEPH, HOSTACCESS, "strings", "services",
163 PRINTCAP, "palladium", "capacls", "alias", "numvalues", "tblstats",
169 * These are commonly used validation objects, defined here so that they
173 static struct valobj VOwild0[] = {
177 static struct valobj VOupwild0[] = {
181 static struct valobj VOwild01[] = {
186 static struct valobj VOwild012[] = {
193 static struct valobj VOuser0[] = {
194 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
197 static struct valobj VOmach0[] = {
198 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
201 static struct valobj VOclu0[] = {
202 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
205 static struct valobj VOsnet0[] = {
206 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_CLUSTER},
209 static struct valobj VOlist0[] = {
210 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
213 static struct valobj VOfilsys0[] = {
214 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
217 static struct valobj VOchar0[] = {
223 * Commonly used validation records defined here so that they may
227 static struct validate VDmach = { VOmach0, 1 };
228 static struct validate VDwild0= { VOwild0, 1 };
229 static struct validate VDupwild0= { VOupwild0, 1 };
230 static struct validate VDwild2 = { VOwild01,2 };
231 static struct validate VDwild3 = { VOwild012,3 };
232 static struct validate VDfixmodby = {
244 static struct validate VDwildfixmodby = {
256 static struct validate VDupwildfixmodby = {
270 static char *galo_fields[] = {
271 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE,
274 static char *gual_fields[] = {
276 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
277 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
280 static char *gubl_fields[] = {
282 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
283 MIT_ID, CLASS, MOD1, MOD2, MOD3,
286 static struct validate gubl_validate =
299 static char *guau_fields[] = {
301 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
302 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
305 static char *guan_fields[] = {
307 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
308 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
311 static struct validate guan_validate =
324 static char *guac_fields[] = {
326 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
327 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
330 static char *guam_fields[] = {
332 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
333 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
336 static char *gubu_fields[] = {
338 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
339 MIT_ID, CLASS, MOD1, MOD2, MOD3,
342 static struct valobj gubu_valobj[] = {
346 static struct validate gubu_validate =
359 static char *gubn_fields[] = {
361 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
362 MIT_ID, CLASS, MOD1, MOD2, MOD3,
365 static struct validate gubn_validate =
378 static char *gubc_fields[] = {
380 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
381 MIT_ID, CLASS, MOD1, MOD2, MOD3,
384 static char *gubm_fields[] = {
386 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
387 MIT_ID, CLASS, MOD1, MOD2, MOD3,
390 static char *gudf_fields[] = {
392 "dirsuppress", "dirremote"
395 static struct validate gudf_validate =
408 static char *auac_fields[] = {
409 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
410 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
413 static struct valobj auac_valobj[] = {
414 {V_CHAR, 0, USERS_TABLE, LOGIN},
416 {V_CHAR, 2, USERS_TABLE, SHELL},
417 {V_CHAR, 3, USERS_TABLE, LAST},
418 {V_CHAR, 4, USERS_TABLE, FIRST},
419 {V_CHAR, 5, USERS_TABLE, MIDDLE},
421 {V_CHAR, 7, USERS_TABLE, MIT_ID},
422 {V_TYPE, 8, 0, CLASS, 0, MR_BAD_CLASS},
423 {V_ID, 9, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
427 static struct validate auac_validate = {
439 static struct validate ausr_validate = {
451 static char *rusr_fields[] = {
452 UID, LOGIN, "fs_type"
455 static struct valobj rusr_valobj[] = {
461 static struct validate rusr_validate = {
473 static char *uuac_fields[] = {
475 "newlogin", UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
476 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
479 static struct valobj uuac_valobj[] = {
480 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
481 {V_RENAME, 1, USERS_TABLE, LOGIN, USERS_ID, MR_NOT_UNIQUE},
483 {V_CHAR, 3, USERS_TABLE, SHELL},
484 {V_CHAR, 4, USERS_TABLE, FIRST},
485 {V_CHAR, 5, USERS_TABLE, LAST},
486 {V_CHAR, 6, USERS_TABLE, MIDDLE},
488 {V_CHAR, 8, USERS_TABLE, MIT_ID},
489 {V_TYPE, 9, 0, CLASS, 0, MR_BAD_CLASS},
490 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
494 static struct validate uuac_validate = {
506 static struct validate uusr_validate = {
518 static char *uush_fields[] = {
523 static struct valobj uush_valobj[] = {
524 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
525 {V_CHAR, 1, USERS_TABLE, SHELL},
528 static struct validate uush_validate = {
540 static char *uust_fields[] = {
545 static char *uuss_fields[] = {
550 static struct valobj uust_valobj[] = {
551 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
556 static struct validate uust_validate = {
568 static char *uudf_fields[] = {
570 "dirsuppress", "dirremote"
573 static struct validate uudf_validate = {
585 static char *dusr_fields[] = {
589 static struct validate dusr_validate = {
601 static char *dubu_fields[] = {
605 static struct valobj dubu_valobj[] = {
606 {V_ID, 0, USERS_TABLE, UID, USERS_ID, MR_USER}
609 static struct validate dubu_validate = {
621 static char *gkum_fields[] = { LOGIN, "kerberos",
624 static char *akum_fields[] = { LOGIN, "kerberos" };
626 static struct valobj akum_valobj[] =
628 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
629 {V_ID, 1, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
632 static struct validate akum_validate =
637 "users_id = %d or string_id = %d",
645 static struct validate dkum_validate =
650 "users_id = %d and string_id = %d",
658 static char *gfbl_fields[] = {
660 LOGIN, "fullname", "nickname", "home_addr",
661 "home_phone", "office_addr", "office_phone", "department",
662 "affiliation", MOD1, MOD2, MOD3,
665 static struct validate gfbl_validate = {
677 static char *ufbl_fields[] = {
679 "fullname", "nickname", "home_addr",
680 "home_phone", "office_addr", "office_phone", "department",
684 static struct valobj ufbl_valobj[] = {
685 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
686 {V_LEN, 1, USERS_TABLE, "fullname"},
687 {V_LEN, 2, USERS_TABLE, "nickname"},
688 {V_LEN, 3, USERS_TABLE, "home_addr"},
689 {V_LEN, 4, USERS_TABLE, "home_phone"},
690 {V_LEN, 5, USERS_TABLE, "office_addr"},
691 {V_LEN, 6, USERS_TABLE, "office_phone"},
692 {V_LEN, 7, USERS_TABLE, "department"},
693 {V_LEN, 8, USERS_TABLE, "affiliation"},
696 static struct validate ufbl_validate = {
708 static char *gpob_fields[] = {
710 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
713 static struct validate gpob_validate = {
717 "potype != 'NONE' and users_id=%d",
725 static char *gpox_fields[] = {
729 static struct validate gpox_validate = {
741 static char *spob_fields[] = {
745 static struct valobj spob_valobj[] = {
746 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
747 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
750 static struct validate spob_validate = /* SET_POBOX */
763 static struct validate spop_validate = /* SET_POBOX_POP */
776 static struct validate dpob_validate = /* DELETE_POBOX */
789 static char *gmac_fields[] = {
791 NAME, TYPE, MOD1, MOD2, MOD3,
794 static char *ghst_fields[] = {
795 NAME, ADDRESS, "location", "network",
796 NAME, "vendor", "model", "os", "location", "contact", "use", "status", "status_change", "network", ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment", "created", "creator", "inuse", MOD1, MOD2, MOD3,
799 static struct valobj ghst_valobj[] = {
806 static struct validate ghst_validate = {
818 static char *ahst_fields[] = {
819 NAME, "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
822 static struct valobj ahst_valobj[] = {
823 {V_CHAR, 0, MACHINE_TABLE, NAME},
824 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
825 {V_CHAR, 2, MACHINE_TABLE, "model"},
826 {V_CHAR, 3, MACHINE_TABLE, "os"},
827 {V_CHAR, 4, MACHINE_TABLE, "location"},
828 {V_CHAR, 5, MACHINE_TABLE, "contact"},
831 {V_ID, 8, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
832 {V_TYPE, 10, 0, ACE_TYPE, 0, MR_ACE},
833 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
834 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
835 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
838 static struct validate ahst_validate = {
842 "name = UPPER('%s')",
847 set_uppercase_modtime,
850 static char *uhst_fields[] = {
852 "newname", "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
855 static struct valobj uhst_valobj[] = {
856 {V_CHAR, 0, MACHINE_TABLE, "name"},
857 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
858 {V_RENAME, 1, MACHINE_TABLE, NAME, MACH_ID, MR_NOT_UNIQUE},
859 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
860 {V_CHAR, 3, MACHINE_TABLE, "model"},
861 {V_CHAR, 4, MACHINE_TABLE, "os"},
862 {V_CHAR, 5, MACHINE_TABLE, "location"},
863 {V_CHAR, 6, MACHINE_TABLE, "contact"},
866 {V_ID, 9, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
867 {V_TYPE, 11, 0, ACE_TYPE, 0, MR_ACE},
868 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
869 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
870 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
873 static struct validate uhst_validate = {
885 static char *dhst_fields[] = {
889 static struct validate dhst_validate = {
901 static char *ghal_fields[] = {
902 ALIAS, "canonical_hostname",
903 ALIAS, "canonical_hostname"
906 static struct valobj ghal_valobj[] = {
911 static struct validate ghal_validate = {
923 static struct valobj ahal_valobj[] = {
924 {V_CHAR, 0, HOSTALIAS_TABLE, NAME},
926 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
929 static struct validate ahal_validate = {
941 static struct valobj dhal_valobj[] = {
943 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
946 static struct validate dhal_validate = {
950 "name = '%s' AND mach_id = %d",
958 static char *gsnt_fields[] = {
960 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
964 static struct validate gsnt_validate = {
976 static char *asnt_fields[] = {
977 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
980 static struct valobj asnt_valobj[] = {
981 {V_CHAR, 0, SUBNET_TABLE, NAME},
982 {V_LEN, 1, SUBNET_TABLE, DESC},
987 {V_LEN, 6, SUBNET_TABLE, "prefix"},
988 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
989 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
992 static struct validate asnt_validate =
997 "name = UPPER('%s')",
1002 set_uppercase_modtime,
1005 static char *usnt_fields[] = {
1007 "newname", DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1010 static struct valobj usnt_valobj[] = {
1011 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_NO_MATCH},
1012 {V_RENAME, 1, SUBNET_TABLE, NAME, SNET_ID, MR_NOT_UNIQUE},
1013 {V_LEN, 2, SUBNET_TABLE, DESC},
1018 {V_LEN, 7, SUBNET_TABLE, "prefix"},
1019 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
1020 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
1023 static struct validate usnt_validate =
1036 static char *dsnt_fields[] = {
1040 static struct validate dsnt_validate = {
1052 static char *gclu_fields[] = {
1054 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
1057 static char *aclu_fields[] = {
1058 NAME, DESC, LOCATION,
1061 static struct valobj aclu_valobj[] = {
1062 {V_CHAR, 0, CLUSTER_TABLE, NAME},
1063 {V_LEN, 1, CLUSTER_TABLE, DESC},
1064 {V_LEN, 2, CLUSTER_TABLE, LOCATION},
1067 static struct validate aclu_validate =
1080 static char *uclu_fields[] = {
1082 "newname", DESC, LOCATION,
1085 static struct valobj uclu_valobj[] = {
1086 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1087 {V_RENAME, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_NOT_UNIQUE},
1088 {V_LEN, 2, CLUSTER_TABLE, DESC},
1089 {V_LEN, 3, CLUSTER_TABLE, LOCATION},
1092 static struct validate uclu_validate = {
1104 static char *dclu_fields[] = {
1108 static struct validate dclu_validate = {
1120 static char *gmcm_fields[] = {
1125 static struct valobj gmcm_valobj[] =
1131 static struct validate gmcm_validate = { gmcm_valobj, 2 };
1133 static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1134 { /* DELETE_MACHINE_FROM_CLUSTER */
1135 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1136 {V_ID, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1139 static struct validate amtc_validate = /* for amtc and dmfc */
1144 "mach_id = %d and clu_id = %d",
1149 set_mach_modtime_by_id,
1152 static char *gcld_fields[] = {
1153 CLUSTER, "serv_label",
1154 CLUSTER, "serv_label", "serv_cluster",
1157 static char *acld_fields[] = {
1158 CLUSTER, "serv_label", "serv_cluster",
1161 static struct valobj acld_valobj[] =
1163 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1164 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1165 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
1168 static struct validate acld_validate =
1173 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1178 set_cluster_modtime_by_id,
1181 static struct valobj dcld_valobj[] =
1183 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1186 static struct validate dcld_validate =
1191 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1196 set_cluster_modtime_by_id,
1199 static char *glin_fields[] = {
1201 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1202 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
1205 static struct validate glin_validate = {
1212 access_vis_list_by_name,
1217 static char *alis_fields[] = {
1218 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1219 ACE_TYPE, ACE_NAME, DESC,
1222 static struct valobj alis_valobj[] = {
1223 {V_CHAR, 0, LIST_TABLE, NAME},
1230 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1231 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
1232 {V_LEN, 9, LIST_TABLE, DESC},
1235 static struct validate alis_validate = {
1247 static char *ulis_fields[] = {
1249 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1250 ACE_TYPE, ACE_NAME, DESC,
1253 static struct valobj ulis_valobj[] = {
1254 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1255 {V_RENAME, 1, LIST_TABLE, NAME, LIST_ID, MR_NOT_UNIQUE},
1262 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
1263 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
1264 {V_LEN, 10, LIST_TABLE, DESC},
1267 static struct validate ulis_validate = {
1279 static char *dlis_fields[] = {
1283 static struct validate dlis_validate = {
1295 static char *amtl_fields[] = {
1296 "list_name", "member_type", "member_name",
1299 static struct valobj amtl_valobj[] = {
1300 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1301 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1302 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
1305 static struct validate amtl_validate =
1318 static struct validate dmfl_validate =
1328 delete_member_from_list,
1331 static char *gaus_fields[] = {
1333 "use_type", "use_name",
1336 static struct valobj gaus_valobj[] = {
1337 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1338 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1341 static struct validate gaus_validate = {
1353 static char *qgli_fields[] = {
1354 "active", "publicflg", "hidden", "maillist", "grouplist",
1358 static struct valobj qgli_valobj[] = {
1359 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1360 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1361 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1362 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1363 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1366 static struct validate qgli_validate = {
1375 qualified_get_lists,
1378 static char *gmol_fields[] = {
1380 "member_type", "member_name",
1383 static struct validate gmol_validate = {
1390 access_visible_list,
1392 get_members_of_list,
1395 static struct validate geml_validate = {
1402 access_visible_list,
1404 get_end_members_of_list,
1407 static char *glom_fields[] = {
1408 "member_type", "member_name",
1409 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
1412 static struct valobj glom_valobj[] = {
1413 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1414 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1417 static struct validate glom_validate = {
1426 get_lists_of_member,
1429 static char *cmol_fields[] = {
1434 static struct validate cmol_validate = {
1441 access_visible_list,
1443 count_members_of_list,
1446 static char *gsin_fields[] = {
1448 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
1449 TYPE, "enable", "inprogress", "harderror", "errmsg",
1450 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
1453 static struct validate gsin_validate =
1466 static char *qgsv_fields[] = {
1467 "enable", "inprogress", "harderror",
1471 static struct valobj qgsv_valobj[] = {
1472 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1473 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1474 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1477 static struct validate qgsv_validate = {
1486 qualified_get_server,
1489 static char *asin_fields[] = {
1490 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
1494 static struct valobj asin_valobj[] = {
1495 {V_CHAR, 0, SERVERS_TABLE, NAME},
1497 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1498 {V_LEN, 3, SERVERS_TABLE, "script"},
1499 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
1501 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
1502 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
1505 static struct validate asin_validate = /* for asin, usin */
1510 "name = UPPER('%s')",
1515 set_uppercase_modtime,
1518 static struct validate rsve_validate = {
1522 "name = UPPER('%s')",
1527 set_uppercase_modtime,
1530 static char *ssif_fields[] = {
1531 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
1534 static struct valobj ssif_valobj[] = {
1539 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1542 static struct validate ssif_validate = {
1546 "name = UPPER('%s')",
1554 static char *dsin_fields[] = {
1558 static struct validate dsin_validate = {
1562 "name = UPPER('%s')",
1570 static char *gshi_fields[] = {
1572 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
1573 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
1574 "value3", MOD1, MOD2, MOD3,
1577 static struct valobj gshi_valobj[] = {
1582 static struct validate gshi_validate = {
1594 static char *qgsh_fields[] = {
1595 "service", "enable", "override", "success", "inprogress", "hosterror",
1599 static struct valobj qgsh_valobj[] = {
1600 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1601 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1602 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1603 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1604 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
1607 static struct validate qgsh_validate = {
1616 qualified_get_serverhost,
1619 static char *ashi_fields[] = {
1620 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
1623 static struct valobj ashi_valobj[] = {
1624 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1625 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1629 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
1632 static struct validate ashi_validate = /* ashi & ushi */
1637 "service = UPPER('%s') AND mach_id = %d",
1642 set_serverhost_modtime,
1645 static struct validate rshe_validate =
1650 "service = UPPER('%s') AND mach_id = %d",
1655 set_serverhost_modtime,
1658 static struct validate ssho_validate =
1663 "service = UPPER('%s') AND mach_id = %d",
1671 static char *sshi_fields[] = {
1672 "service", MACHINE, "override", "success", "inprogress",
1673 "hosterror", "errmsg", "ltt", "lts",
1676 static struct valobj sshi_valobj[] = {
1677 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1678 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1683 {V_LEN, 6, SERVERS_TABLE, "errmsg"},
1688 static struct validate sshi_validate =
1701 static char *dshi_fields[] = {
1705 static struct validate dshi_validate =
1710 "service = UPPER('%s') AND mach_id = %d",
1718 static char *gslo_fields[] = {
1723 static char *gfsl_fields[] = {
1725 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1726 "create", "lockertype", MOD1, MOD2, MOD3,
1729 static char *gfsm_fields[] = {
1731 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1732 "create", "lockertype", MOD1, MOD2, MOD3,
1735 static struct validate gfsm_validate = {
1747 static char *gfsn_fields[] = {
1748 MACHINE, "parition",
1749 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1750 "create", "lockertype", MOD1, MOD2, MOD3,
1753 static struct valobj gfsn_valobj[] =
1755 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1759 static struct validate gfsn_validate = {
1771 static char *gfsp_fields[] = {
1773 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1774 "create", "lockertype", MOD1, MOD2, MOD3,
1777 static char *gfsg_fields[] = {
1779 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1780 "create", "lockertype", MOD1, MOD2, MOD3,
1783 static struct validate gfsg_validate = {
1795 static char *afil_fields[] = {
1796 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1797 "create", "lockertype",
1800 static struct valobj afil_valobj[] = {
1801 {V_CHAR, 0, FILESYS_TABLE, LABEL},
1802 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
1803 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1804 {V_CHAR, 3, FILESYS_TABLE, NAME},
1805 {V_LEN, 4, FILESYS_TABLE, "mount"},
1806 {V_LEN, 5, FILESYS_TABLE, "rwaccess"},
1807 {V_LEN, 6, FILESYS_TABLE, COMMENTS},
1808 {V_ID, 7, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1809 {V_ID, 8, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1811 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
1814 static struct validate afil_validate = {
1823 set_filesys_modtime,
1826 static char *ufil_fields[] = {
1827 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", COMMENTS,
1828 "owner", "owners", "create", "lockertype",
1831 static struct valobj ufil_valobj[] = {
1832 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1833 {V_RENAME, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
1834 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
1835 {V_ID, 3, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1836 {V_CHAR, 4, FILESYS_TABLE, NAME},
1837 {V_LEN, 5, FILESYS_TABLE, "mount"},
1838 {V_LEN, 6, FILESYS_TABLE, "rwaccess"},
1839 {V_LEN, 7, FILESYS_TABLE, COMMENTS},
1840 {V_ID, 8, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1841 {V_ID, 9, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1843 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
1846 static struct validate ufil_validate = {
1855 set_filesys_modtime,
1858 static char *dfil_fields[] = {
1862 static struct validate dfil_validate = {
1874 static char *gfgm_fields[] = {
1875 "fsgroup", FILESYS, "sortkey"
1878 static struct validate gfgm_validate = {
1890 static struct valobj aftg_valobj[] = {
1891 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1892 {V_ID, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1895 static struct validate aftg_validate = {
1899 "group_id = %d and filsys_id = %d",
1907 static char *ganf_fields[] = {
1908 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
1911 static char *gnfp_fields[] = {
1913 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
1916 static struct valobj gnfp_valobj[] = {
1917 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1921 static struct validate gnfp_validate = {
1933 static struct valobj anfp_valobj[] = {
1934 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1935 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
1936 {V_LEN, 2, NFSPHYS_TABLE, "device"},
1942 static struct validate anfp_validate = {
1946 "mach_id = %d and dir = '%s'",
1951 set_nfsphys_modtime,
1954 static struct validate unfp_validate = {
1958 "mach_id = %d and dir = '%s'",
1963 set_nfsphys_modtime,
1966 static char *ajnf_fields[] = {
1967 MACHINE, DIR, "adjustment",
1970 static struct valobj ajnf_valobj[] = {
1971 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1972 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
1976 static struct validate ajnf_validate = {
1980 "mach_id = %d and dir = '%s'",
1985 set_nfsphys_modtime,
1988 static char *dnfp_fields[] = {
1992 static struct validate dnfp_validate = {
1996 "mach_id = %d and dir = '%s'",
2001 set_nfsphys_modtime,
2004 static char *gqot_fields[] = {
2005 FILESYS, TYPE, NAME,
2006 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2009 static struct valobj gqot_valobj[] = {
2011 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2012 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2015 static struct validate gqot_validate = {
2027 static char *gqbf_fields[] = {
2029 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2032 static struct validate gqbf_validate = {
2044 static char *aqot_fields[] = {
2045 FILESYS, TYPE, NAME, QUOTA,
2048 static struct valobj aqot_valobj[] = {
2049 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2050 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2051 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2055 static struct validate aqot_validate = {
2059 "filsys_id = %d and type = '%s' and entity_id = %d",
2067 static struct validate uqot_validate = {
2071 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2079 static struct validate dqot_validate = {
2083 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2091 static char *gnfq_fields[] = {
2093 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2096 static struct validate gnfq_validate = {
2108 static char *gnqp_fields[] = {
2110 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2113 static struct valobj gnqp_valobj[] = {
2114 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2118 static struct validate gnqp_validate = { gnqp_valobj, 2, };
2120 static char *anfq_fields[] = {
2121 FILESYS, LOGIN, QUOTA,
2124 static struct valobj anfq_valobj[] = {
2125 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2126 {V_ID, 1, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
2130 static struct validate anfq_validate = {
2134 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2142 static struct validate unfq_validate = {
2146 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2154 static struct validate dnfq_validate = {
2158 "filsys_id = %d AND entity_id = %d",
2166 static char *gzcl_fields[] = {
2168 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2169 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
2172 static struct validate gzcl_validate = {
2184 static char *azcl_fields[] = {
2185 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2186 "iws_type", "iws_name", "iui_type", "iui_name",
2189 static struct valobj azcl_valobj[] = {
2190 {V_CHAR, 0, ZEPHYR_TABLE, CLASS},
2191 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2192 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
2193 {V_TYPE, 3, 0, ACE_TYPE, 0, MR_ACE},
2194 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
2195 {V_TYPE, 5, 0, ACE_TYPE, 0, MR_ACE},
2196 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
2197 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
2198 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
2201 static struct validate azcl_validate = {
2213 static char *uzcl_fields[] = {
2214 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2215 "iws_type", "iws_name", "iui_type", "iui_name",
2218 static struct valobj uzcl_valobj[] = {
2219 {V_RENAME, 1, ZEPHYR_TABLE, CLASS, 0, MR_NOT_UNIQUE},
2220 {V_TYPE, 2, 0, ACE_TYPE, 0, MR_ACE},
2221 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
2222 {V_TYPE, 4, 0, ACE_TYPE, 0, MR_ACE},
2223 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
2224 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
2225 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
2226 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
2227 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
2230 static struct validate uzcl_validate = {
2242 static struct validate dzcl_validate = {
2254 static char *gsha_fields[] = {
2256 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
2259 static struct validate gsha_validate =
2272 static char *asha_fields[] = {
2273 MACHINE, ACE_TYPE, ACE_NAME,
2276 static struct valobj asha_valobj[] = {
2277 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2278 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2279 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2282 static struct validate asha_validate =
2295 static char *gsvc_fields[] = {
2297 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3,
2300 static char *asvc_fields[] = {
2301 SERVICE, "protocol", "port", DESC,
2304 static struct valobj asvc_valobj[] = {
2305 {V_CHAR, 0, SERVICES_TABLE, NAME},
2306 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
2308 {V_CHAR, 3, SERVICES_TABLE, DESC},
2311 static struct validate asvc_validate = {
2323 static char *gpce_fields[] = {
2325 "printer", "spooling_host", "spool_directory", "rprinter",
2326 "quotaserver", "authenticate", "price", COMMENTS,
2330 static struct validate gpce_validate = {
2342 static char *apce_fields[] = {
2343 "printer", "spooling_host", "spool_directory", "rprinter",
2344 "quotaserver", "authenticate", "price", COMMENTS,
2348 static struct valobj apce_valobj[] = {
2349 {V_CHAR, 0, PRINTCAP_TABLE, NAME},
2350 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2351 {V_LEN, 2, PRINTCAP_TABLE, "dir"},
2352 {V_LEN, 3, PRINTCAP_TABLE, "rp"},
2353 {V_ID, 4, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2356 {V_CHAR, 7, PRINTCAP_TABLE, "comments"},
2359 static struct validate apce_validate = {
2371 static struct validate dpce_validate = {
2383 static char *gpcp_fields[] = {
2385 "printer", "spooling_host", "spool_directory", "rprinter", COMMENTS,
2389 static char *gpdm_fields[] = {
2391 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
2394 static char *apdm_fields[] = {
2395 NAME, "rpcnum", "host"
2398 static struct valobj apdm_valobj[] = {
2399 {V_CHAR, 0, PALLADIUM_TABLE, NAME},
2401 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2404 static struct validate apdm_validate = {
2416 static struct validate dpdm_validate = {
2428 static char *gali_fields[] = {
2429 NAME, TYPE, "trans",
2430 NAME, TYPE, "trans",
2433 static char *aali_fields[] = {
2434 NAME, TYPE, "trans",
2437 static struct valobj aali_valobj[] = {
2438 {V_CHAR, 0, ALIAS_TABLE, NAME},
2439 {V_TYPE, 1, 0, ALIAS, 0, MR_TYPE},
2440 {V_CHAR, 2, ALIAS_TABLE, "trans"},
2443 static struct validate aali_validate = {
2447 "name = '%s' and type = '%s' and trans = '%s'",
2455 static struct validate dali_validate = /* DELETE_ALIAS */
2460 "name = '%s' and type = '%s' and trans = '%s'",
2468 static char *gval_fields[] = {
2472 static struct valobj gval_valobj[] = {
2473 {V_NAME, 0, NUMVALUES_TABLE, NAME, 0, MR_NO_MATCH},
2476 static struct validate gval_validate = {
2488 static char *aval_fields[] = {
2492 static struct valobj aval_valobj[] = {
2493 {V_CHAR, 0, NUMVALUES_TABLE, NAME},
2497 static struct validate aval_validate = /* for aval, uval, and dval */
2510 static char *dval_fields[] = {
2514 static char *gats_fields[] = {
2515 "table_name", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
2518 static char *_sdl_fields[] = {
2522 static struct valobj _sdl_valobj[] = {
2526 static struct validate _sdl_validate =
2541 /* Generalized Query Definitions */
2543 /* Note: For any query which uses prefetch_value, the vcnt should be
2544 * one less than the number of %-format specifiers in the tlist.
2547 struct query Queries2[] = {
2549 /* Q_GALO - GET_ALL_LOGINS */
2555 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2565 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2566 "get_all_active_logins",
2571 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2581 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2582 "get_user_account_by_login",
2587 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2590 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2597 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2598 "get_user_account_by_uid",
2603 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2606 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
2613 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2614 "get_user_account_by_name",
2619 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2622 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comments = str.string_id",
2629 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2630 "get_user_account_by_class",
2635 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2638 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
2645 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2646 "get_user_account_by_id",
2651 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2654 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2661 /* Q_GUBL - GET_USER_BY_LOGIN */
2662 "get_user_by_login",
2667 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2670 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2677 /* Q_GUBU - GET_USER_BY_UID */
2683 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2686 "u.unix_uid = %s AND u.users_id != 0",
2693 /* Q_GUBN - GET_USER_BY_NAME */
2699 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2702 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2709 /* Q_GUBC - GET_USER_BY_CLASS */
2710 "get_user_by_class",
2715 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2718 "u.type = UPPER('%s') AND u.users_id != 0",
2725 /* Q_GUBM - GET_USER_BY_MITID */
2726 "get_user_by_mitid",
2731 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2734 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2741 /* Q_GUDF - GET_USER_DIRECTORY_FLAGS */
2742 "get_user_directory_flags",
2747 "u.dirsuppress, u.dirremote FROM users u",
2757 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2763 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s',CHR(0)), NVL('%s',CHR(0)), NVL('%s',CHR(0)), %s, NVL('%s',CHR(0)), '%s', %d, LENGTH(NVL('%s',CHR(0))), %s, %s)", /* followup_ausr fixes signature field */
2773 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
2779 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s',CHR(0)), NVL('%s',CHR(0)), NVL('%s',CHR(0)), %s, NVL('%s',CHR(0)), '%s', 0, CHR(0), 0, %s)",
2789 /* Q_RUSR - REGISTER_USER */
2805 /* Q_UUAC - UPDATE_USER_ACCOUNT */
2806 "update_user_account",
2811 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s',CHR(0)), first = NVL('%s',CHR(0)), middle = NVL('%s',CHR(0)), status = %s, clearid = NVL('%s',CHR(0)), type = '%s', comments = %d, signature = LENGTH(NVL('%s',CHR(0))), secure = %s", /* followup_uuac fixes signature */
2821 /* Q_UUSR - UPDATE_USER */
2827 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s',CHR(0)), first = NVL('%s',CHR(0)), middle = NVL('%s',CHR(0)), status = %s, clearid = NVL('%s',CHR(0)), type = '%s'",
2837 /* Q_UUSH - UPDATE_USER_SHELL */
2838 "update_user_shell",
2843 "users SET shell = '%s'",
2853 /* Q_UUST - UPDATE_USER_STATUS */
2854 "update_user_status",
2859 "users SET status = %s",
2869 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
2870 "update_user_security_status",
2875 "users SET secure = %s",
2885 /* Q_UUDF - UPDATE_USER_DIRECTORY_FLAGS */
2886 "update_user_directory_flags",
2891 "users SET dirsuppress = %s, dirremote = %s",
2901 /* Q_DUSR - DELETE_USER */
2917 /* Q_DUBU - DELETE_USER_BY_UID */
2918 "delete_user_by_uid",
2933 /* Q_GKUM - GET_KERBEROS_USER_MAP */
2934 "get_kerberos_user_map",
2939 "u.login, str.string FROM krbmap km, users u, strings str",
2942 "u.login LIKE '%s' ESCAPE '*' AND str.string LIKE '%s' ESCAPE '*' AND km.users_id = u.users_id AND km.string_id = str.string_id",
2949 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
2950 "add_kerberos_user_map",
2955 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
2965 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
2966 "delete_kerberos_user_map",
2974 "users_id = %d AND string_id = %d",
2981 /* Q_GFBL - GET_FINGER_BY_LOGIN */
2982 "get_finger_by_login",
2987 "login, fullname, nickname, home_addr, home_phone, office_addr, office_phone, department, affiliation, TO_CHAR(fmodtime, 'DD-mon-YYYY HH24:MI:SS'), fmodby, fmodwith FROM users",
2997 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
2998 "update_finger_by_login",
3003 "users SET fullname= NVL('%s',CHR(0)),nickname= NVL('%s',CHR(0)),home_addr= NVL('%s',CHR(0)),home_phone= NVL('%s',CHR(0)),office_addr= NVL('%s',CHR(0)),office_phone= NVL('%s',CHR(0)),department= NVL('%s',CHR(0)),affiliation= NVL('%s',CHR(0))",
3013 /* Q_GPOB - GET_POBOX */
3019 "login, potype, pop_id || ':' || box_id, TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
3029 /* Q_GAPO - GET_ALL_POBOXES */
3035 "login, potype, pop_id || ':' || box_id FROM users",
3045 /* Q_GPOP - GET_POBOXES_POP */
3051 "login, potype, pop_id || ':' || box_id FROM users",
3061 /* Q_GPOF - GET_POBOXES_SMTP */
3067 "login, potype, pop_id || ':' || box_id FROM users",
3077 /* Q_SPOB - SET_POBOX */
3093 /* Q_SPOP - SET_POBOX_POP */
3099 "users SET potype = 'POP'",
3109 /* Q_DPOB - DELETE_POBOX */
3115 "users SET potype = 'NONE'",
3125 /* Q_GHST - GET_HOST */
3131 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
3134 "m.name LIKE '%s' ESCAPE '*' AND m.address LIKE '%s' ESCAPE '*' AND m.location LIKE '%s' ESCAPE '*' AND s.name LIKE '%s' ESCAPE '*' AND m.mach_id != 0 AND s.snet_id = m.snet_id",
3141 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3147 "INTO machine (name, vendor, model, os, location, contact, use, status, statuschange, snet_id, address, owner_type, owner_id, acomment, ocomment, created, inuse, mach_id, creator) VALUES (UPPER('%s'),NVL(UPPER('%s'),CHR(0)),NVL(UPPER('%s'),CHR(0)),NVL(UPPER('%s'),CHR(0)),NVL(UPPER('%s'),CHR(0)),NVL('%s',CHR(0)),%s,%s,SYSDATE,%d,'%s','%s',%d,%d,%d,SYSDATE,SYSDATE,%s,%s)",
3157 /* Q_UHST - UPDATE_HOST */
3163 "machine SET name=NVL(UPPER('%s'),CHR(0)),vendor=NVL(UPPER('%s'),CHR(0)),model=NVL(UPPER('%s'),CHR(0)),os=NVL(UPPER('%s'),CHR(0)),location=NVL(UPPER('%s'),CHR(0)),contact=NVL('%s',CHR(0)),use=%s,status=%s,snet_id=%d,address='%s',owner_type='%s',owner_id=%d,acomment=%d,ocomment=%d",
3173 /* Q_DHST - DELETE_HOST */
3189 /* Q_GMAC - GET_MACHINE */
3195 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
3198 "name LIKE '%s' ESCAPE '*' AND mach_id != 0",
3205 /* Q_GHAL - GET_HOSTALIAS */
3211 "a.name, m.name FROM hostalias a, machine m",
3214 "m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
3221 /* Q_AHAL - ADD_HOSTALIAS */
3227 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'),%d)",
3237 /* Q_DHAL - DELETE_HOSTALIAS */
3246 "name = UPPER('%s') AND mach_id = %d",
3253 /* Q_GSNT - GET_SUBNET */
3259 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
3262 "name LIKE '%s' ESCAPE '*' and snet_id != 0",
3269 /* Q_ASNT - ADD_SUBNET */
3275 "INTO subnet (name, description, saddr, mask, low, high, prefix, owner_type, owner_id, snet_id) VALUES (UPPER('%s'), NVL('%s',CHR(0)), %s, %s, %s, %s, NVL('%s',CHR(0)), '%s', %d, %s)",
3285 /* Q_USNT - UPDATE_SUBNET */
3291 "subnet SET name=UPPER('%s'), description=NVL('%s',CHR(0)), saddr=%s, mask=%s, low=%s, high=%s, prefix=NVL('%s',CHR(0)), owner_type='%s', owner_id=%d",
3301 /* Q_DSNT - DELETE_SUBNET */
3317 /* Q_GCLU - GET_CLUSTER */
3323 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
3326 "name LIKE '%s' ESCAPE '*' AND clu_id != 0",
3333 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
3339 "INTO clusters (name, description, location, clu_id) VALUES ('%s',NVL('%s',CHR(0)),NVL('%s',CHR(0)),%s)",
3349 /* Q_UCLU - UPDATE_CLUSTER */
3355 "clusters SET name = '%s', description = NVL('%s',CHR(0)), location = NVL('%s',CHR(0))",
3365 /* Q_DCLU - DELETE_CLUSTER */
3381 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
3382 "get_machine_to_cluster_map",
3387 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
3390 "m.name LIKE '%s' ESCAPE '*' AND c.name LIKE '%s' ESCAPE '*' AND mcm.clu_id = c.clu_id AND mcm.mach_id = m.mach_id",
3397 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3398 "add_machine_to_cluster",
3403 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
3413 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3414 "delete_machine_from_cluster",
3422 "mach_id = %d AND clu_id = %d",
3429 /* Q_GCLD - GET_CLUSTER_DATA */
3435 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
3438 "c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
3440 "c.name, svc.serv_label, svc.serv_cluster",
3445 /* Q_ACLD - ADD_CLUSTER_DATA */
3451 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d,'%s','%s')",
3461 /* Q_DCLD - DELETE_CLUSTER_DATA */
3462 "delete_cluster_data",
3470 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
3477 /* Q_GLIN - GET_LIST_INFO */
3493 /* Q_EXLN - EXPAND_LIST_NAMES */
3494 "expand_list_names",
3502 "name LIKE '%s' ESCAPE '*' AND list_id != 0",
3509 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
3515 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, acl_type, acl_id, description, list_id) VALUES ('%s',%s,%s,%s,%s,%s,%s,'%s',%d,NVL('%s',CHR(0)),%s)",
3525 /* Q_ULIS - UPDATE_LIST */
3531 "list SET name='%s', active=%s, publicflg=%s, hidden=%s, maillist=%s, grouplist=%s, gid=%s, acl_type='%s', acl_id=%d, description=NVL('%s',CHR(0))",
3541 /* Q_DLIS - DELETE_LIST */
3557 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3558 "add_member_to_list",
3573 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3574 "delete_member_from_list",
3589 /* Q_GAUS - GET_ACE_USE */
3605 /* Q_QGLI - QUALIFIED_GET_LISTS */
3606 "qualified_get_lists",
3621 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3622 "get_members_of_list",
3637 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
3638 "get_end_members_of_list",
3653 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3654 "get_lists_of_member",
3669 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3670 "count_members_of_list",
3685 /* Q_GSIN - GET_SERVER_INFO */
3691 "name, update_int, target_file, script, dfgen, dfcheck, type, enable, inprogress, harderror, errmsg, acl_type, acl_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM servers",
3694 "name LIKE '%s' ESCAPE '*'",
3701 /* Q_QGSV - QUALIFIED_GET_SERVER */
3702 "qualified_get_server",
3717 /* Q_ASIN - ADD_SERVER_INFO */
3723 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'),%s,'%s','%s','%s',%s,'%s',%d)",
3733 /* Q_USIN - UPDATE_SERVER_INFO */
3734 "update_server_info",
3739 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
3742 "name = UPPER('%s')",
3749 /* Q_RSVE - RESET_SERVER_ERROR */
3750 "reset_server_error",
3755 "servers SET harderror = 0, dfcheck = dfgen",
3758 "name = UPPER('%s')",
3765 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3766 "set_server_internal_flags",
3771 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s',CHR(0))",
3774 "name = UPPER('%s')",
3781 /* Q_DSIN - DELETE_SERVER_INFO */
3782 "delete_server_info",
3790 "name = UPPER('%s')",
3797 /* Q_GSHI - GET_SERVER_HOST_INFO */
3798 "get_server_host_info",
3803 "sh.service, m.name, sh.enable, sh.override, sh.success, sh.inprogress, sh.hosterror, sh.hosterrmsg, sh.ltt, sh.lts, sh.value1, sh.value2, sh.value3, TO_CHAR(sh.modtime, 'DD-mon-YYYY HH24:MI:SS'), sh.modby, sh.modwith FROM serverhosts sh, machine m",
3806 "sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
3813 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
3814 "qualified_get_server_host",
3829 /* Q_ASHI - ADD_SERVER_HOST_INFO */
3830 "add_server_host_info",
3835 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s',CHR(0)))",
3845 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
3846 "update_server_host_info",
3851 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s',CHR(0))",
3854 "service = UPPER('%s') AND mach_id = %d",
3861 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
3862 "reset_server_host_error",
3867 "serverhosts SET hosterror = 0",
3870 "service = UPPER('%s') AND mach_id = %d",
3877 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
3878 "set_server_host_override",
3883 "serverhosts SET override = 1",
3886 "service = UPPER('%s') AND mach_id = %d",
3893 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
3894 "set_server_host_internal",
3899 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s',CHR(0)), ltt = %s, lts = %s",
3902 "service = UPPER('%s') AND mach_id = %d",
3909 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
3910 "delete_server_host_info",
3918 "service = UPPER('%s') AND mach_id = %d",
3925 /* Q_GSLO - GET_SERVER_LOCATIONS */
3926 "get_server_locations",
3931 "sh.service, m.name FROM serverhosts sh, machine m",
3934 "sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
3936 "sh.service, m.name",
3941 /* Q_GFSL - GET_FILESYS_BY_LABEL */
3942 "get_filesys_by_label",
3947 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
3950 "fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
3957 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
3958 "get_filesys_by_machine",
3963 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
3966 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
3973 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
3974 "get_filesys_by_nfsphys",
3979 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l, nfsphys np",
3982 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id AND np.nfsphys_id = fs.phys_id AND np.dir LIKE '%s' ESCAPE '*' AND fs.type = 'NFS'",
3989 /* Q_GFSG - GET_FILESYS_BY_GROUP */
3990 "get_filesys_by_group",
3995 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
3998 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4005 /* Q_GFSP - GET_FILESYS_BY_PATH */
4006 "get_filesys_by_path",
4011 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
4014 "fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4021 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
4027 "INTO filesys (label, type, mach_id, name, mount, rwaccess, comments, owner, owners, createflg, lockertype, filsys_id) VALUES ('%s','%s',%d,NVL('%s',CHR(0)),'%s','%s',NVL('%s',CHR(0)),%d,%d,%s,'%s',%s)",
4037 /* Q_UFIL - UPDATE_FILESYS */
4043 "filesys SET label = '%s', type = '%s', mach_id = %d, name = NVL('%s',CHR(0)), mount = '%s', rwaccess = '%s', comments = NVL('%s',CHR(0)), owner = %d, owners = %d, createflg = %s, lockertype = '%s'",
4053 /* Q_DFIL - DELETE_FILESYS */
4069 /* Q_GFGM - GET_FSGROUP_MEMBERS */
4070 "get_fsgroup_members",
4075 "fs.label, fg.key FROM fsgroup fg, filesys fs",
4078 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
4085 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
4086 "add_filesys_to_fsgroup",
4091 "INTO fsgroup (group_id,filsys_id,key) VALUES (%d, %d, '%s')",
4101 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
4102 "remove_filesys_from_fsgroup",
4110 "group_id = %d AND filsys_id = %d",
4117 /* Q_GANF - GET_ALL_NFSPHYS */
4123 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
4126 "m.mach_id = np.mach_id",
4133 /* Q_GNFP - GET_NFSPHYS */
4139 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
4142 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
4149 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
4155 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s',CHR(0)), %s, %s, %s, %s)",
4165 /* Q_UNFP - UPDATE_NFSPHYS */
4171 "nfsphys SET device = NVL('%s',CHR(0)), status = %s, allocated = %s, partsize = %s",
4174 "mach_id = %d AND dir = '%s'",
4181 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
4182 "adjust_nfsphys_allocation",
4187 "nfsphys SET allocated = allocated + %s",
4190 "mach_id = %d AND dir = '%s'",
4197 /* Q_DNFP - DELETE_NFSPHYS */
4206 "mach_id = %d AND dir = '%s'",
4213 /* Q_GQOT - GET_QUOTA */
4219 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
4222 "fs.label LIKE '%s' ESCAPE '*' AND q.type = '%s' AND q.entity_id = %d AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
4229 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
4230 "get_quota_by_filesys",
4235 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
4238 "fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
4245 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
4251 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
4261 /* Q_UQOT - UPDATE_QUOTA */
4267 "quota SET quota = %s",
4277 /* Q_DQOT - DELETE_QUOTA */
4293 /* Q_GNFQ - GET_NFS_QUOTAS */
4299 "fs.label, u.login, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, users u, machine m",
4302 "fs.label LIKE '%s' ESCAPE '*' AND q.type = 'USER' AND q.entity_id = u.users_id AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id AND u.login = '%s'",
4304 "fs.label, u.login",
4309 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
4310 "get_nfs_quotas_by_partition",
4315 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
4318 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND q.phys_id = np.nfsphys_id AND fs.filsys_id = q.filsys_id AND q.type = 'USER' AND u.users_id = q.entity_id AND m.mach_id = np.mach_id",
4320 "fs.label, np.dir, u.login",
4325 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
4331 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
4341 /* Q_UNFQ - UPDATE_NFS_QUOTA */
4347 "quota SET quota = %s",
4357 /* Q_DNFQ - DELETE_NFS_QUOTA */
4373 /* Q_GZCL - GET_ZEPHYR_CLASS */
4379 "class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM zephyr",
4382 "class LIKE '%s' ESCAPE '*'",
4389 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4395 "INTO zephyr (class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id) VALUES ('%s','%s',%d,'%s',%d,'%s',%d,'%s',%d)",
4405 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4406 "update_zephyr_class",
4411 "zephyr SET class = '%s', xmt_type = '%s', xmt_id = %d, sub_type = '%s', sub_id = %d, iws_type = '%s', iws_id = %d, iui_type = '%s', iui_id = %d",
4421 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4422 "delete_zephyr_class",
4437 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
4438 "get_server_host_access",
4443 "m.name, ha.acl_type, ha.acl_id, TO_CHAR(ha.modtime, 'DD-mon-YYYY HH24:MI:SS'), ha.modby, ha.modwith FROM hostaccess ha, machine m",
4446 "m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
4453 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
4454 "add_server_host_access",
4459 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d,'%s',%d)",
4469 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
4470 "update_server_host_access",
4475 "hostaccess SET acl_type = '%s', acl_id = %d",
4485 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
4486 "delete_server_host_access",
4501 /* Q_GSVC - GET_SERVICE */
4507 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
4510 "name LIKE '%s' ESCAPE '*'",
4517 /* Q_ASVC - ADD_SERVICE */
4523 "INTO services (name, protocol, port, description) VALUES ('%s','%s',%s,NVL('%s',CHR(0)))",
4533 /* Q_DSVC - DELETE_SERVICE */
4549 /* Q_GPCE - GET_PRINTCAP_ENTRY */
4550 "get_printcap_entry",
4555 "pc.name, m.name, pc.dir, pc.rp, pc.quotaserver, pc.auth, pc.price, pc.comments, TO_CHAR(pc.modtime, 'DD-mon-YYYY HH24:MI:SS'), pc.modby, pc.modwith FROM printcap pc, machine m",
4558 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4565 /* Q_APCE - ADD_PRINTCAP_ENTRY */
4566 "add_printcap_entry",
4571 "INTO printcap (name, mach_id, dir, rp, quotaserver, auth, price, comments) VALUES ('%s',%d,'%s','%s',%d,%s,%s,NVL('%s',CHR(0)))",
4581 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
4582 "delete_printcap_entry",
4597 /* Q_GPCP - GET_PRINTCAP */
4603 "pc.name, m.name, pc.dir, pc.rp, pc.comments, TO_CHAR(pc.modtime, 'DD-mon-YYYY HH24:MI:SS'), pc.modby, pc.modwith FROM printcap pc, machine m",
4606 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4613 /* Q_DPCP - DELETE_PRINTCAP */
4629 /* Q_GPDM - GET_PALLADIUM */
4635 "pal.name, pal.identifier, m.name, TO_CHAR(pal.modtime, 'DD-mon-YYYY HH24:MI:SS'), pal.modby, pal.modwith FROM palladium pal, machine m",
4638 "pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
4645 /* Q_APDM - ADD_PALLADIUM */
4651 "INTO palladium (name, identifier, mach_id) VALUES ('%s',%s,%d)",
4661 /* Q_DPDM - DELETE_PALLADIUM */
4677 /* Q_GALI - GET_ALIAS */
4683 "name, type, trans FROM alias",
4686 "name LIKE '%s' ESCAPE '*' AND type LIKE '%s' ESCAPE '*' AND trans LIKE '%s' ESCAPE '*'",
4688 "name, type, trans",
4693 /* Q_AALI - ADD_ALIAS */
4699 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
4709 /* Q_DALI - DELETE_ALIAS */
4718 "name = '%s' AND type = '%s' AND trans = '%s'",
4725 /* Q_GVAL - GET_VALUE */
4731 "value FROM numvalues",
4741 /* Q_AVAL - ADD_VALUE */
4747 "INTO numvalues (name, value) VALUES ('%s', %s)",
4757 /* Q_UVAL - UPDATE_VALUE */
4763 "numvalues SET value = %s",
4773 /* Q_DVAL - DELETE_VALUE */
4789 /* Q_GATS - GET_ALL_TABLE_STATS */
4790 "get_all_table_stats",
4795 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
4805 /* Q__SDL - _SET_DEBUG_LEVEL */
4822 int QueryCount2 = (sizeof Queries2 / sizeof (struct query));