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
174 * A word about validation objects and locking: The validation object
175 * for a query should also request locks on behalf of the pre-processing
176 * and post-processing routines. This helps to ensure that tables are
177 * accessed and locked in the proper order and thus avoids deadlock
181 static struct valobj VOwild0[] = {
185 static struct valobj VOupwild0[] = {
189 static struct valobj VOwild01[] = {
194 static struct valobj VOwild012[] = {
201 static struct valobj VOuser0[] = {
202 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
206 static struct valobj VOuser0lock[] = {
207 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
208 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
211 static struct valobj VOmach0[] = {
212 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
215 static struct valobj VOclu0[] = {
216 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
219 static struct valobj VOlist0[] = {
220 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
224 static struct valobj VOchar0[] = {
230 static struct valobj VOfilsys0user1[] = {
231 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
232 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
233 {V_ID, 1, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
238 * Commonly used validation records defined here so that they may
242 static struct validate VDmach = { VOmach0, 1 };
243 static struct validate VDwild0= { VOwild0, 1 };
244 static struct validate VDupwild0= { VOupwild0, 1 };
245 static struct validate VDwild2 = { VOwild01,2 };
246 static struct validate VDwild3 = { VOwild012,3 };
247 static struct validate VDfixmodby = {
259 static struct validate VDwildfixmodby = {
271 static struct validate VDupwildfixmodby = {
285 static char *galo_fields[] = {
286 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE,
289 static char *gual_fields[] = {
291 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
292 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
295 static char *gubl_fields[] = {
297 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
298 MIT_ID, CLASS, MOD1, MOD2, MOD3,
301 static struct validate gubl_validate =
314 static char *guau_fields[] = {
316 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
317 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
320 static char *guan_fields[] = {
322 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
323 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
326 static struct validate guan_validate =
339 static char *guac_fields[] = {
341 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
342 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
345 static char *guam_fields[] = {
347 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
348 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
351 static char *gubu_fields[] = {
353 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
354 MIT_ID, CLASS, MOD1, MOD2, MOD3,
357 static struct valobj gubu_valobj[] = {
361 static struct validate gubu_validate =
374 static char *gubn_fields[] = {
376 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
377 MIT_ID, CLASS, MOD1, MOD2, MOD3,
380 static struct validate gubn_validate =
393 static char *gubc_fields[] = {
395 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
396 MIT_ID, CLASS, MOD1, MOD2, MOD3,
399 static char *gubm_fields[] = {
401 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
402 MIT_ID, CLASS, MOD1, MOD2, MOD3,
405 static char *gudf_fields[] = {
407 "dirsuppress", "dirremote"
410 static struct validate gudf_validate =
423 static char *auac_fields[] = {
424 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
425 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
428 static struct valobj auac_valobj[] = {
429 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
430 {V_CHAR, 0, USERS_TABLE, LOGIN},
432 {V_CHAR, 2, USERS_TABLE, SHELL},
433 {V_CHAR, 3, USERS_TABLE, LAST},
434 {V_CHAR, 4, USERS_TABLE, FIRST},
435 {V_CHAR, 5, USERS_TABLE, MIDDLE},
437 {V_CHAR, 7, USERS_TABLE, MIT_ID},
438 {V_TYPE, 8, 0, CLASS, 0, MR_BAD_CLASS},
439 {V_ID, 9, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
443 static struct validate auac_validate = {
455 static struct validate ausr_validate = {
467 static char *rusr_fields[] = {
468 UID, LOGIN, "fs_type"
471 static struct valobj rusr_valobj[] = {
472 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
473 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
474 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
475 {V_RLOCK, 0, MACHINE_TABLE, 0,MACH_ID, MR_DEADLOCK},
476 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
477 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
478 {V_LOCK, 0, QUOTA_TABLE,0, FILSYS_ID, MR_DEADLOCK},
479 {V_RLOCK,0, SERVERHOSTS_TABLE,0, MACH_ID, MR_DEADLOCK},
485 static struct validate rusr_validate = {
497 static char *uuac_fields[] = {
499 "newlogin", UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
500 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
503 static struct valobj uuac_valobj[] = {
504 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
505 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
506 {V_RENAME, 1, USERS_TABLE, LOGIN, USERS_ID, MR_NOT_UNIQUE},
508 {V_CHAR, 3, USERS_TABLE, SHELL},
509 {V_CHAR, 4, USERS_TABLE, FIRST},
510 {V_CHAR, 5, USERS_TABLE, LAST},
511 {V_CHAR, 6, USERS_TABLE, MIDDLE},
513 {V_CHAR, 8, USERS_TABLE, MIT_ID},
514 {V_TYPE, 9, 0, CLASS, 0, MR_BAD_CLASS},
515 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
519 static struct validate uuac_validate = {
531 static struct validate uusr_validate = {
543 static char *uush_fields[] = {
548 static struct valobj uush_valobj[] = {
549 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
550 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
551 {V_CHAR, 1, USERS_TABLE, SHELL},
554 static struct validate uush_validate = {
566 static char *uust_fields[] = {
571 static char *uuss_fields[] = {
576 static struct valobj uust_valobj[] = {
577 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
578 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
583 static struct validate uust_validate = {
595 static char *uudf_fields[] = {
597 "dirsuppress", "dirremote"
600 static struct validate uudf_validate = {
612 static char *dusr_fields[] = {
616 struct valobj dusr_valobj[]= {
617 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
618 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
619 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
620 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
621 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
622 {V_LOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
623 {V_LOCK, 0, KRBMAP_TABLE, 0, "users_id", MR_DEADLOCK},
624 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
627 static struct validate dusr_validate = {
639 static char *dubu_fields[] = {
643 static struct valobj dubu_valobj[] = {
644 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
645 {V_ID, 0, USERS_TABLE, UID, USERS_ID, MR_USER}
648 static struct validate dubu_validate = {
660 static char *gkum_fields[] = { LOGIN, "kerberos",
663 static char *akum_fields[] = { LOGIN, "kerberos" };
665 static struct valobj akum_valobj[] =
667 {V_LOCK, 0, KRBMAP_TABLE, 0, "users_id", MR_DEADLOCK},
668 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
669 {V_ID, 1, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
673 static struct validate akum_validate =
678 "users_id = %d or string_id = %d",
686 static struct validate dkum_validate =
691 "users_id = %d and string_id = %d",
699 static char *gfbl_fields[] = {
701 LOGIN, "fullname", "nickname", "home_addr",
702 "home_phone", "office_addr", "office_phone", "department",
703 "affiliation", MOD1, MOD2, MOD3,
706 static struct validate gfbl_validate = {
718 static char *ufbl_fields[] = {
720 "fullname", "nickname", "home_addr",
721 "home_phone", "office_addr", "office_phone", "department",
725 static struct valobj ufbl_valobj[] = {
726 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
727 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
728 {V_LEN, 1, USERS_TABLE, "fullname"},
729 {V_LEN, 2, USERS_TABLE, "nickname"},
730 {V_LEN, 3, USERS_TABLE, "home_addr"},
731 {V_LEN, 4, USERS_TABLE, "home_phone"},
732 {V_LEN, 5, USERS_TABLE, "office_addr"},
733 {V_LEN, 6, USERS_TABLE, "office_phone"},
734 {V_LEN, 7, USERS_TABLE, "department"},
735 {V_LEN, 8, USERS_TABLE, "affiliation"},
738 static struct validate ufbl_validate = {
750 static char *gpob_fields[] = {
752 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
755 static struct validate gpob_validate = {
759 "potype != 'NONE' and users_id=%d",
767 static char *gpox_fields[] = {
771 struct valobj gpox_valobj[]={
772 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
773 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK}
776 static struct validate gpox_validate = {
788 static char *spob_fields[] = {
792 static struct valobj spob_valobj[] = {
793 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
794 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
795 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
796 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
799 static struct validate spob_validate = /* SET_POBOX */
812 struct valobj spop_valobj[] = {
813 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
814 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
815 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
818 static struct validate spop_validate = /* SET_POBOX_POP */
831 static struct validate dpob_validate = /* DELETE_POBOX */
844 static char *gmac_fields[] = {
846 NAME, TYPE, MOD1, MOD2, MOD3,
849 static char *ghst_fields[] = {
850 NAME, ADDRESS, "location", "network",
851 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,
854 static struct valobj ghst_valobj[] = {
861 static struct validate ghst_validate = {
873 static char *ahst_fields[] = {
874 NAME, "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
877 static struct valobj ahst_valobj[] = {
878 {V_RLOCK,0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
879 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
880 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
881 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
882 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
883 {V_CHAR, 0, MACHINE_TABLE, NAME},
884 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
885 {V_CHAR, 2, MACHINE_TABLE, "model"},
886 {V_CHAR, 3, MACHINE_TABLE, "os"},
887 {V_CHAR, 4, MACHINE_TABLE, "location"},
888 {V_CHAR, 5, MACHINE_TABLE, "contact"},
891 {V_ID, 8, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
892 {V_TYPE, 10, 0, ACE_TYPE, 0, MR_ACE},
893 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
894 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
895 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
898 static struct validate ahst_validate = {
902 "name = UPPER('%s')",
907 set_uppercase_modtime,
910 static char *uhst_fields[] = {
912 "newname", "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
915 static struct valobj uhst_valobj[] = {
916 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
917 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
918 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
919 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
920 {V_CHAR, 0, MACHINE_TABLE, "name"},
921 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
922 {V_RENAME, 1, MACHINE_TABLE, NAME, MACH_ID, MR_NOT_UNIQUE},
923 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
924 {V_CHAR, 3, MACHINE_TABLE, "model"},
925 {V_CHAR, 4, MACHINE_TABLE, "os"},
926 {V_CHAR, 5, MACHINE_TABLE, "location"},
927 {V_CHAR, 6, MACHINE_TABLE, "contact"},
930 {V_ID, 9, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
931 {V_TYPE, 11, 0, ACE_TYPE, 0, MR_ACE},
932 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
933 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
934 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
937 static struct validate uhst_validate = {
949 static char *dhst_fields[] = {
953 static struct valobj dhst_valobj[] = {
954 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
955 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
956 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
957 {V_RLOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
958 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
959 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
960 {V_LOCK, 0, MCMAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
961 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
962 {V_RLOCK, 0, PALLADIUM_TABLE, 0, MACH_ID, MR_DEADLOCK},
963 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
966 static struct validate dhst_validate = {
978 static char *ghal_fields[] = {
979 ALIAS, "canonical_hostname",
980 ALIAS, "canonical_hostname"
983 static struct valobj ghal_valobj[] = {
988 static struct validate ghal_validate = {
1000 static struct valobj ahal_valobj[] = {
1001 {V_CHAR, 0, HOSTALIAS_TABLE, NAME},
1003 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1006 static struct validate ahal_validate = {
1018 static struct valobj dhal_valobj[] = {
1020 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1021 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1024 static struct validate dhal_validate = {
1028 "name = '%s' AND mach_id = %d",
1036 static char *gsnt_fields[] = {
1038 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1042 static struct valobj gsnt_valobj[] = {
1043 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1044 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1045 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1049 static struct validate gsnt_validate = {
1061 static char *asnt_fields[] = {
1062 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1065 static struct valobj asnt_valobj[] = {
1066 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1067 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1068 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1069 {V_CHAR, 0, SUBNET_TABLE, NAME},
1070 {V_LEN, 1, SUBNET_TABLE, DESC},
1075 {V_LEN, 6, SUBNET_TABLE, "prefix"},
1076 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1077 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
1080 static struct validate asnt_validate =
1085 "name = UPPER('%s')",
1090 set_uppercase_modtime,
1093 static char *usnt_fields[] = {
1095 "newname", DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1098 static struct valobj usnt_valobj[] = {
1099 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1100 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1101 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1102 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_NO_MATCH},
1103 {V_RENAME, 1, SUBNET_TABLE, NAME, SNET_ID, MR_NOT_UNIQUE},
1104 {V_LEN, 2, SUBNET_TABLE, DESC},
1109 {V_LEN, 7, SUBNET_TABLE, "prefix"},
1110 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
1111 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
1114 static struct validate usnt_validate =
1127 static char *dsnt_fields[] = {
1131 static struct valobj dsnt_valobj[] = {
1132 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1133 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1134 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
1137 static struct validate dsnt_validate = {
1149 static char *gclu_fields[] = {
1151 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
1154 static char *aclu_fields[] = {
1155 NAME, DESC, LOCATION,
1158 static struct valobj aclu_valobj[] = {
1159 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1160 {V_CHAR, 0, CLUSTER_TABLE, NAME},
1161 {V_LEN, 1, CLUSTER_TABLE, DESC},
1162 {V_LEN, 2, CLUSTER_TABLE, LOCATION},
1165 static struct validate aclu_validate =
1178 static char *uclu_fields[] = {
1180 "newname", DESC, LOCATION,
1183 static struct valobj uclu_valobj[] = {
1184 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1185 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1186 {V_RENAME, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_NOT_UNIQUE},
1187 {V_LEN, 2, CLUSTER_TABLE, DESC},
1188 {V_LEN, 3, CLUSTER_TABLE, LOCATION},
1191 static struct validate uclu_validate = {
1203 static char *dclu_fields[] = {
1207 static struct validate dclu_validate = {
1219 static char *gmcm_fields[] = {
1224 static struct valobj gmcm_valobj[] =
1230 static struct validate gmcm_validate = { gmcm_valobj, 2 };
1232 static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1233 { /* DELETE_MACHINE_FROM_CLUSTER */
1234 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1235 {V_ID, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1238 static struct validate amtc_validate = /* for amtc and dmfc */
1243 "mach_id = %d and clu_id = %d",
1248 set_mach_modtime_by_id,
1251 static char *gcld_fields[] = {
1252 CLUSTER, "serv_label",
1253 CLUSTER, "serv_label", "serv_cluster",
1256 static char *acld_fields[] = {
1257 CLUSTER, "serv_label", "serv_cluster",
1260 static struct valobj acld_valobj[] =
1262 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1263 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1264 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
1267 static struct validate acld_validate =
1272 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1277 set_cluster_modtime_by_id,
1280 static struct valobj dcld_valobj[] =
1282 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1285 static struct validate dcld_validate =
1290 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1295 set_cluster_modtime_by_id,
1298 static char *glin_fields[] = {
1300 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1301 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
1304 static struct validate glin_validate = {
1311 access_vis_list_by_name,
1316 static char *alis_fields[] = {
1317 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1318 ACE_TYPE, ACE_NAME, DESC,
1321 static struct valobj alis_valobj[] = {
1322 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1323 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1324 {V_CHAR, 0, LIST_TABLE, NAME},
1331 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1332 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
1333 {V_LEN, 9, LIST_TABLE, DESC},
1336 static struct validate alis_validate = {
1348 static char *ulis_fields[] = {
1350 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1351 ACE_TYPE, ACE_NAME, DESC,
1354 static struct valobj ulis_valobj[] = {
1355 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1356 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1357 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1358 {V_RENAME, 1, LIST_TABLE, NAME, LIST_ID, MR_NOT_UNIQUE},
1365 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
1366 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
1367 {V_LEN, 10, LIST_TABLE, DESC},
1370 static struct validate ulis_validate = {
1382 static char *dlis_fields[] = {
1386 static struct valobj dlis_valobj[] ={
1387 {V_RLOCK, 0, CAPACLS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1388 {V_RLOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1389 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1390 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1391 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1392 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1393 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1394 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1397 static struct validate dlis_validate = {
1409 static char *amtl_fields[] = {
1410 "list_name", "member_type", "member_name",
1413 static struct valobj amtl_valobj[] = {
1414 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1415 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1416 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1417 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1418 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
1421 static struct validate amtl_validate =
1434 static struct validate dmfl_validate =
1444 delete_member_from_list,
1447 static char *gaus_fields[] = {
1449 "use_type", "use_name",
1452 static struct valobj gaus_valobj[] = {
1453 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1454 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1455 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1456 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1457 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1458 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1459 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1462 static struct validate gaus_validate = {
1474 static char *qgli_fields[] = {
1475 "active", "publicflg", "hidden", "maillist", "grouplist",
1479 static struct valobj qgli_valobj[] = {
1480 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1481 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1482 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1483 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1484 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1487 static struct validate qgli_validate = {
1496 qualified_get_lists,
1499 static char *gmol_fields[] = {
1501 "member_type", "member_name",
1504 static struct valobj gmol_valobj[]={
1505 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1506 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1507 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1510 static struct validate gmol_validate = {
1517 access_visible_list,
1519 get_members_of_list,
1522 static struct validate geml_validate = {
1529 access_visible_list,
1531 get_end_members_of_list,
1534 static char *glom_fields[] = {
1535 "member_type", "member_name",
1536 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
1539 static struct valobj glom_valobj[] = {
1540 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1541 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1542 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1543 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1544 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1547 static struct validate glom_validate = {
1556 get_lists_of_member,
1559 static char *cmol_fields[] = {
1564 static struct validate cmol_validate = {
1571 access_visible_list,
1573 count_members_of_list,
1576 static char *gsin_fields[] = {
1578 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
1579 TYPE, "enable", "inprogress", "harderror", "errmsg",
1580 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
1583 static struct valobj gsin_valobj[] =
1585 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1586 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1590 static struct validate gsin_validate =
1603 static char *qgsv_fields[] = {
1604 "enable", "inprogress", "harderror",
1608 static struct valobj qgsv_valobj[] = {
1609 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1610 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1611 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1614 static struct validate qgsv_validate = {
1623 qualified_get_server,
1626 static char *asin_fields[] = {
1627 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
1631 static struct valobj asin_valobj[] = {
1632 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1633 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1634 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1635 {V_CHAR, 0, SERVERS_TABLE, NAME},
1637 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1638 {V_LEN, 3, SERVERS_TABLE, "script"},
1639 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
1641 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
1642 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
1645 static struct validate asin_validate = /* for asin, usin */
1650 "name = UPPER('%s')",
1655 set_uppercase_modtime,
1658 static struct validate rsve_validate = {
1662 "name = UPPER('%s')",
1667 set_uppercase_modtime,
1670 static char *ssif_fields[] = {
1671 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
1674 static struct valobj ssif_valobj[] = {
1675 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1676 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1677 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1682 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1685 static struct validate ssif_validate = {
1689 "name = UPPER('%s')",
1697 static char *dsin_fields[] = {
1701 static struct validate dsin_validate = {
1705 "name = UPPER('%s')",
1713 static char *gshi_fields[] = {
1715 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
1716 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
1717 "value3", MOD1, MOD2, MOD3,
1720 static struct valobj gshi_valobj[] = {
1725 static struct validate gshi_validate = {
1737 static char *qgsh_fields[] = {
1738 "service", "enable", "override", "success", "inprogress", "hosterror",
1742 static struct valobj qgsh_valobj[] = {
1743 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1744 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1745 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1746 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1747 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
1750 static struct validate qgsh_validate = {
1759 qualified_get_serverhost,
1762 static char *ashi_fields[] = {
1763 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
1766 static struct valobj ashi_valobj[] = {
1767 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1768 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1769 {V_LOCK, 0, SERVERHOSTS_TABLE,0, MACH_ID, MR_DEADLOCK},
1770 {V_CHAR, 0, SERVERHOSTS_TABLE, NAME},
1771 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1775 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
1778 static struct validate ashi_validate = /* ashi & ushi */
1783 "service = UPPER('%s') AND mach_id = %d",
1788 set_serverhost_modtime,
1791 static struct validate rshe_validate =
1796 "service = UPPER('%s') AND mach_id = %d",
1801 set_serverhost_modtime,
1804 static struct validate ssho_validate =
1809 "service = UPPER('%s') AND mach_id = %d",
1817 static char *sshi_fields[] = {
1818 "service", MACHINE, "override", "success", "inprogress",
1819 "hosterror", "errmsg", "ltt", "lts",
1822 static struct valobj sshi_valobj[] = {
1823 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1824 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1825 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1830 {V_LEN, 6, SERVERS_TABLE, "errmsg"},
1835 static struct validate sshi_validate =
1848 static char *dshi_fields[] = {
1852 static struct validate dshi_validate =
1857 "service = UPPER('%s') AND mach_id = %d",
1865 static char *gslo_fields[] = {
1870 static char *gfsl_fields[] = {
1872 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1873 "create", "lockertype", MOD1, MOD2, MOD3,
1876 static char *gfsm_fields[] = {
1878 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1879 "create", "lockertype", MOD1, MOD2, MOD3,
1882 static struct valobj gfsm_valobj[] = {
1883 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1884 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1887 static struct validate gfsm_validate = {
1899 static char *gfsn_fields[] = {
1900 MACHINE, "parition",
1901 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1902 "create", "lockertype", MOD1, MOD2, MOD3,
1905 static struct valobj gfsn_valobj[] =
1907 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1908 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1912 static struct validate gfsn_validate = {
1924 static char *gfsp_fields[] = {
1926 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1927 "create", "lockertype", MOD1, MOD2, MOD3,
1930 static char *gfsg_fields[] = {
1932 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1933 "create", "lockertype", MOD1, MOD2, MOD3,
1936 static struct valobj gfsg_valobj[] = {
1937 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1938 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1941 static struct validate gfsg_validate = {
1953 static char *afil_fields[] = {
1954 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1955 "create", "lockertype",
1958 static struct valobj afil_valobj[] = {
1959 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1960 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1961 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1962 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1963 {V_CHAR, 0, FILESYS_TABLE, LABEL},
1964 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
1965 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1966 {V_CHAR, 3, FILESYS_TABLE, NAME},
1967 {V_LEN, 4, FILESYS_TABLE, "mount"},
1968 {V_LEN, 5, FILESYS_TABLE, "rwaccess"},
1969 {V_LEN, 6, FILESYS_TABLE, COMMENTS},
1970 {V_ID, 7, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1971 {V_ID, 8, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1973 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
1976 static struct validate afil_validate = {
1985 set_filesys_modtime,
1988 static char *ufil_fields[] = {
1989 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", COMMENTS,
1990 "owner", "owners", "create", "lockertype",
1993 static struct valobj ufil_valobj[] = {
1994 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1995 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1996 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1997 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1998 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1999 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2000 {V_RENAME, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
2001 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
2002 {V_ID, 3, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2003 {V_CHAR, 4, FILESYS_TABLE, NAME},
2004 {V_LEN, 5, FILESYS_TABLE, "mount"},
2005 {V_LEN, 6, FILESYS_TABLE, "rwaccess"},
2006 {V_LEN, 7, FILESYS_TABLE, COMMENTS},
2007 {V_ID, 8, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
2008 {V_ID, 9, LIST_TABLE, NAME, LIST_ID, MR_LIST},
2010 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
2013 static struct validate ufil_validate = {
2022 set_filesys_modtime,
2025 static char *dfil_fields[] = {
2029 static struct valobj dfil_valobj[] = {
2030 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2031 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2032 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2033 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
2034 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2037 static struct validate dfil_validate = {
2049 static char *gfgm_fields[] = {
2050 "fsgroup", FILESYS, "sortkey"
2053 static struct valobj gfgm_valobj[] = {
2054 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2057 static struct validate gfgm_validate = {
2069 static struct valobj aftg_valobj[] = {
2070 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2071 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
2072 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2073 {V_ID, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2076 static struct validate aftg_validate = {
2080 "group_id = %d and filsys_id = %d",
2088 static char *ganf_fields[] = {
2089 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2092 static char *gnfp_fields[] = {
2094 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2097 static struct valobj gnfp_valobj[] = {
2098 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2099 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2103 static struct validate gnfp_validate = {
2115 static struct valobj anfp_valobj[] = {
2116 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2117 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2118 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2119 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2120 {V_LEN, 2, NFSPHYS_TABLE, "device"},
2126 static struct validate anfp_validate = {
2130 "mach_id = %d and dir = '%s'",
2135 set_nfsphys_modtime,
2138 static struct validate unfp_validate = {
2142 "mach_id = %d and dir = '%s'",
2147 set_nfsphys_modtime,
2150 static char *ajnf_fields[] = {
2151 MACHINE, DIR, "adjustment",
2154 static struct valobj ajnf_valobj[] = {
2155 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2156 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2157 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2158 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2162 static struct validate ajnf_validate = {
2166 "mach_id = %d and dir = '%s'",
2171 set_nfsphys_modtime,
2174 static char *dnfp_fields[] = {
2178 static struct valobj dnfp_valobj[] = {
2179 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2180 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2181 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2182 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2185 static struct validate dnfp_validate = {
2189 "mach_id = %d and dir = '%s'",
2194 set_nfsphys_modtime,
2197 static char *gqot_fields[] = {
2198 FILESYS, TYPE, NAME,
2199 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2202 static struct valobj gqot_valobj[] = {
2203 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2204 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2205 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2206 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2207 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2209 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2210 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2213 static struct validate gqot_validate = {
2225 static char *gqbf_fields[] = {
2227 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2230 static struct validate gqbf_validate = {
2242 static char *aqot_fields[] = {
2243 FILESYS, TYPE, NAME, QUOTA,
2246 static struct valobj aqot_valobj[] = {
2247 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2248 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2249 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2250 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2251 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2252 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2253 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2254 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2258 static struct validate aqot_validate = {
2262 "filsys_id = %d and type = '%s' and entity_id = %d",
2270 static struct validate uqot_validate = {
2274 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2282 static struct validate dqot_validate = {
2286 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2294 static char *gnfq_fields[] = {
2296 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2299 static struct validate gnfq_validate = {
2311 static char *gnqp_fields[] = {
2313 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2316 static struct valobj gnqp_valobj[] = {
2317 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2321 static struct validate gnqp_validate = { gnqp_valobj, 2, };
2323 static char *anfq_fields[] = {
2324 FILESYS, LOGIN, QUOTA,
2327 static struct valobj anfq_valobj[] = {
2328 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2329 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2330 {V_ID, 1, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
2334 static struct validate anfq_validate = {
2338 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2346 static struct validate unfq_validate = {
2350 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2358 static struct validate dnfq_validate = {
2362 "filsys_id = %d AND entity_id = %d",
2370 static char *gzcl_fields[] = {
2372 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2373 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
2376 static struct valobj gzcl_valobj[] = {
2377 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2378 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2379 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2382 static struct validate gzcl_validate = {
2394 static char *azcl_fields[] = {
2395 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2396 "iws_type", "iws_name", "iui_type", "iui_name",
2399 static struct valobj azcl_valobj[] = {
2400 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2401 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2402 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2403 {V_CHAR, 0, ZEPHYR_TABLE, CLASS},
2404 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2405 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
2406 {V_TYPE, 3, 0, ACE_TYPE, 0, MR_ACE},
2407 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
2408 {V_TYPE, 5, 0, ACE_TYPE, 0, MR_ACE},
2409 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
2410 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
2411 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
2414 static struct validate azcl_validate = {
2426 static char *uzcl_fields[] = {
2427 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2428 "iws_type", "iws_name", "iui_type", "iui_name",
2431 static struct valobj uzcl_valobj[] = {
2432 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2433 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2434 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2435 {V_RENAME, 1, ZEPHYR_TABLE, CLASS, 0, MR_NOT_UNIQUE},
2436 {V_TYPE, 2, 0, ACE_TYPE, 0, MR_ACE},
2437 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
2438 {V_TYPE, 4, 0, ACE_TYPE, 0, MR_ACE},
2439 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
2440 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
2441 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
2442 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
2443 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
2446 static struct validate uzcl_validate = {
2458 static struct validate dzcl_validate = {
2470 static char *gsha_fields[] = {
2472 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
2475 static struct validate gsha_validate =
2488 static char *asha_fields[] = {
2489 MACHINE, ACE_TYPE, ACE_NAME,
2492 static struct valobj asha_valobj[] = {
2493 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2494 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2495 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2496 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2497 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2500 static struct validate asha_validate =
2513 static char *gsvc_fields[] = {
2515 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3,
2518 static char *asvc_fields[] = {
2519 SERVICE, "protocol", "port", DESC,
2522 static struct valobj asvc_valobj[] = {
2523 {V_CHAR, 0, SERVICES_TABLE, NAME},
2524 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
2526 {V_CHAR, 3, SERVICES_TABLE, DESC},
2529 static struct validate asvc_validate = {
2541 static char *gpce_fields[] = {
2543 "printer", "spooling_host", "spool_directory", "rprinter",
2544 "quotaserver", "authenticate", "price", COMMENTS,
2548 static struct valobj gpce_valobj[]={
2549 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2550 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2551 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
2555 static struct validate gpce_validate = {
2567 static char *apce_fields[] = {
2568 "printer", "spooling_host", "spool_directory", "rprinter",
2569 "quotaserver", "authenticate", "price", COMMENTS,
2573 static struct valobj apce_valobj[] = {
2574 {V_CHAR, 0, PRINTCAP_TABLE, NAME},
2575 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2576 {V_LEN, 2, PRINTCAP_TABLE, "dir"},
2577 {V_LEN, 3, PRINTCAP_TABLE, "rp"},
2578 {V_ID, 4, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2581 {V_CHAR, 7, PRINTCAP_TABLE, "comments"},
2584 static struct validate apce_validate = {
2596 static struct validate dpce_validate = {
2608 static char *gpcp_fields[] = {
2610 "printer", "spooling_host", "spool_directory", "rprinter", COMMENTS,
2614 static char *gpdm_fields[] = {
2616 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
2619 static char *apdm_fields[] = {
2620 NAME, "rpcnum", "host"
2623 static struct valobj apdm_valobj[] = {
2624 {V_CHAR, 0, PALLADIUM_TABLE, NAME},
2626 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2629 static struct validate apdm_validate = {
2641 static struct validate dpdm_validate = {
2653 static char *gali_fields[] = {
2654 NAME, TYPE, "trans",
2655 NAME, TYPE, "trans",
2658 static char *aali_fields[] = {
2659 NAME, TYPE, "trans",
2662 static struct valobj aali_valobj[] = {
2663 {V_CHAR, 0, ALIAS_TABLE, NAME},
2664 {V_TYPE, 1, 0, ALIAS, 0, MR_TYPE},
2665 {V_CHAR, 2, ALIAS_TABLE, "trans"},
2668 static struct validate aali_validate = {
2672 "name = '%s' and type = '%s' and trans = '%s'",
2680 static struct validate dali_validate = /* DELETE_ALIAS */
2685 "name = '%s' and type = '%s' and trans = '%s'",
2693 static char *gval_fields[] = {
2697 static struct valobj gval_valobj[] = {
2698 {V_NAME, 0, NUMVALUES_TABLE, NAME, 0, MR_NO_MATCH},
2701 static struct validate gval_validate = {
2713 static char *aval_fields[] = {
2717 static struct valobj aval_valobj[] = {
2718 {V_CHAR, 0, NUMVALUES_TABLE, NAME},
2722 static struct validate aval_validate = /* for aval, uval, and dval */
2735 static char *dval_fields[] = {
2739 static char *gats_fields[] = {
2740 "table_name", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
2743 static char *_sdl_fields[] = {
2747 static struct valobj _sdl_valobj[] = {
2751 static struct validate _sdl_validate =
2766 /* Generalized Query Definitions */
2768 /* Note: For any query which uses prefetch_value, the vcnt should be
2769 * one less than the number of %-format specifiers in the tlist.
2772 struct query Queries2[] = {
2774 /* Q_GALO - GET_ALL_LOGINS */
2780 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2790 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2791 "get_all_active_logins",
2796 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2806 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2807 "get_user_account_by_login",
2812 "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",
2815 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2822 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2823 "get_user_account_by_uid",
2828 "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",
2831 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
2838 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2839 "get_user_account_by_name",
2844 "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",
2847 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comments = str.string_id",
2854 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2855 "get_user_account_by_class",
2860 "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",
2863 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
2870 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2871 "get_user_account_by_id",
2876 "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",
2879 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2886 /* Q_GUBL - GET_USER_BY_LOGIN */
2887 "get_user_by_login",
2892 "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",
2895 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2902 /* Q_GUBU - GET_USER_BY_UID */
2908 "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",
2911 "u.unix_uid = %s AND u.users_id != 0",
2918 /* Q_GUBN - GET_USER_BY_NAME */
2924 "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",
2927 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2934 /* Q_GUBC - GET_USER_BY_CLASS */
2935 "get_user_by_class",
2940 "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",
2943 "u.type = UPPER('%s') AND u.users_id != 0",
2950 /* Q_GUBM - GET_USER_BY_MITID */
2951 "get_user_by_mitid",
2956 "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",
2959 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2966 /* Q_GUDF - GET_USER_DIRECTORY_FLAGS */
2967 "get_user_directory_flags",
2972 "u.dirsuppress, u.dirremote FROM users u",
2982 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2988 "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 */
2998 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
3004 "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)",
3014 /* Q_RUSR - REGISTER_USER */
3030 /* Q_UUAC - UPDATE_USER_ACCOUNT */
3031 "update_user_account",
3036 "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 */
3046 /* Q_UUSR - UPDATE_USER */
3052 "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'",
3062 /* Q_UUSH - UPDATE_USER_SHELL */
3063 "update_user_shell",
3068 "users SET shell = '%s'",
3078 /* Q_UUST - UPDATE_USER_STATUS */
3079 "update_user_status",
3084 "users SET status = %s",
3094 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
3095 "update_user_security_status",
3100 "users SET secure = %s",
3110 /* Q_UUDF - UPDATE_USER_DIRECTORY_FLAGS */
3111 "update_user_directory_flags",
3116 "users SET dirsuppress = %s, dirremote = %s",
3126 /* Q_DUSR - DELETE_USER */
3142 /* Q_DUBU - DELETE_USER_BY_UID */
3143 "delete_user_by_uid",
3158 /* Q_GKUM - GET_KERBEROS_USER_MAP */
3159 "get_kerberos_user_map",
3164 "u.login, str.string FROM krbmap km, users u, strings str",
3167 "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",
3174 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3175 "add_kerberos_user_map",
3180 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
3190 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3191 "delete_kerberos_user_map",
3199 "users_id = %d AND string_id = %d",
3206 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3207 "get_finger_by_login",
3212 "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",
3222 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3223 "update_finger_by_login",
3228 "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))",
3238 /* Q_GPOB - GET_POBOX */
3244 "login, potype, pop_id || ':' || box_id, TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
3254 /* Q_GAPO - GET_ALL_POBOXES */
3260 "login, potype, pop_id || ':' || box_id FROM users",
3270 /* Q_GPOP - GET_POBOXES_POP */
3276 "login, potype, pop_id || ':' || box_id FROM users",
3286 /* Q_GPOF - GET_POBOXES_SMTP */
3292 "login, potype, pop_id || ':' || box_id FROM users",
3302 /* Q_SPOB - SET_POBOX */
3318 /* Q_SPOP - SET_POBOX_POP */
3324 "users SET potype = 'POP'",
3334 /* Q_DPOB - DELETE_POBOX */
3340 "users SET potype = 'NONE'",
3350 /* Q_GHST - GET_HOST */
3356 "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",
3359 "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",
3366 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3372 "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)",
3382 /* Q_UHST - UPDATE_HOST */
3388 "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",
3398 /* Q_DHST - DELETE_HOST */
3414 /* Q_GMAC - GET_MACHINE */
3420 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
3423 "name LIKE '%s' ESCAPE '*' AND mach_id != 0",
3430 /* Q_GHAL - GET_HOSTALIAS */
3436 "a.name, m.name FROM hostalias a, machine m",
3439 "m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
3446 /* Q_AHAL - ADD_HOSTALIAS */
3452 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'),%d)",
3462 /* Q_DHAL - DELETE_HOSTALIAS */
3471 "name = UPPER('%s') AND mach_id = %d",
3478 /* Q_GSNT - GET_SUBNET */
3484 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
3487 "name LIKE '%s' ESCAPE '*' and snet_id != 0",
3494 /* Q_ASNT - ADD_SUBNET */
3500 "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)",
3510 /* Q_USNT - UPDATE_SUBNET */
3516 "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",
3526 /* Q_DSNT - DELETE_SUBNET */
3542 /* Q_GCLU - GET_CLUSTER */
3548 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
3551 "name LIKE '%s' ESCAPE '*' AND clu_id != 0",
3558 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
3564 "INTO clusters (name, description, location, clu_id) VALUES ('%s',NVL('%s',CHR(0)),NVL('%s',CHR(0)),%s)",
3574 /* Q_UCLU - UPDATE_CLUSTER */
3580 "clusters SET name = '%s', description = NVL('%s',CHR(0)), location = NVL('%s',CHR(0))",
3590 /* Q_DCLU - DELETE_CLUSTER */
3606 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
3607 "get_machine_to_cluster_map",
3612 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
3615 "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",
3622 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3623 "add_machine_to_cluster",
3628 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
3638 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3639 "delete_machine_from_cluster",
3647 "mach_id = %d AND clu_id = %d",
3654 /* Q_GCLD - GET_CLUSTER_DATA */
3660 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
3663 "c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
3665 "c.name, svc.serv_label, svc.serv_cluster",
3670 /* Q_ACLD - ADD_CLUSTER_DATA */
3676 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d,'%s','%s')",
3686 /* Q_DCLD - DELETE_CLUSTER_DATA */
3687 "delete_cluster_data",
3695 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
3702 /* Q_GLIN - GET_LIST_INFO */
3718 /* Q_EXLN - EXPAND_LIST_NAMES */
3719 "expand_list_names",
3727 "name LIKE '%s' ESCAPE '*' AND list_id != 0",
3734 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
3740 "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)",
3750 /* Q_ULIS - UPDATE_LIST */
3756 "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))",
3766 /* Q_DLIS - DELETE_LIST */
3782 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3783 "add_member_to_list",
3798 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3799 "delete_member_from_list",
3814 /* Q_GAUS - GET_ACE_USE */
3830 /* Q_QGLI - QUALIFIED_GET_LISTS */
3831 "qualified_get_lists",
3846 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3847 "get_members_of_list",
3862 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
3863 "get_end_members_of_list",
3878 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3879 "get_lists_of_member",
3894 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3895 "count_members_of_list",
3910 /* Q_GSIN - GET_SERVER_INFO */
3916 "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",
3919 "name LIKE '%s' ESCAPE '*'",
3926 /* Q_QGSV - QUALIFIED_GET_SERVER */
3927 "qualified_get_server",
3942 /* Q_ASIN - ADD_SERVER_INFO */
3948 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'),%s,'%s','%s','%s',%s,'%s',%d)",
3958 /* Q_USIN - UPDATE_SERVER_INFO */
3959 "update_server_info",
3964 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
3967 "name = UPPER('%s')",
3974 /* Q_RSVE - RESET_SERVER_ERROR */
3975 "reset_server_error",
3980 "servers SET harderror = 0, dfcheck = dfgen",
3983 "name = UPPER('%s')",
3990 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3991 "set_server_internal_flags",
3996 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s',CHR(0))",
3999 "name = UPPER('%s')",
4006 /* Q_DSIN - DELETE_SERVER_INFO */
4007 "delete_server_info",
4015 "name = UPPER('%s')",
4022 /* Q_GSHI - GET_SERVER_HOST_INFO */
4023 "get_server_host_info",
4028 "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",
4031 "sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
4038 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
4039 "qualified_get_server_host",
4054 /* Q_ASHI - ADD_SERVER_HOST_INFO */
4055 "add_server_host_info",
4060 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s',CHR(0)))",
4070 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
4071 "update_server_host_info",
4076 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s',CHR(0))",
4079 "service = UPPER('%s') AND mach_id = %d",
4086 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
4087 "reset_server_host_error",
4092 "serverhosts SET hosterror = 0",
4095 "service = UPPER('%s') AND mach_id = %d",
4102 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
4103 "set_server_host_override",
4108 "serverhosts SET override = 1",
4111 "service = UPPER('%s') AND mach_id = %d",
4118 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
4119 "set_server_host_internal",
4124 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s',CHR(0)), ltt = %s, lts = %s",
4127 "service = UPPER('%s') AND mach_id = %d",
4134 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
4135 "delete_server_host_info",
4143 "service = UPPER('%s') AND mach_id = %d",
4150 /* Q_GSLO - GET_SERVER_LOCATIONS */
4151 "get_server_locations",
4156 "sh.service, m.name FROM serverhosts sh, machine m",
4159 "sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
4161 "sh.service, m.name",
4166 /* Q_GFSL - GET_FILESYS_BY_LABEL */
4167 "get_filesys_by_label",
4172 "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",
4175 "fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4182 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
4183 "get_filesys_by_machine",
4188 "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",
4191 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4198 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
4199 "get_filesys_by_nfsphys",
4204 "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",
4207 "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'",
4214 /* Q_GFSG - GET_FILESYS_BY_GROUP */
4215 "get_filesys_by_group",
4220 "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",
4223 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4230 /* Q_GFSP - GET_FILESYS_BY_PATH */
4231 "get_filesys_by_path",
4236 "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",
4239 "fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4246 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
4252 "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)",
4262 /* Q_UFIL - UPDATE_FILESYS */
4268 "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'",
4278 /* Q_DFIL - DELETE_FILESYS */
4294 /* Q_GFGM - GET_FSGROUP_MEMBERS */
4295 "get_fsgroup_members",
4300 "fs.label, fg.key FROM fsgroup fg, filesys fs",
4303 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
4310 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
4311 "add_filesys_to_fsgroup",
4316 "INTO fsgroup (group_id,filsys_id,key) VALUES (%d, %d, '%s')",
4326 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
4327 "remove_filesys_from_fsgroup",
4335 "group_id = %d AND filsys_id = %d",
4342 /* Q_GANF - GET_ALL_NFSPHYS */
4348 "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",
4351 "m.mach_id = np.mach_id",
4358 /* Q_GNFP - GET_NFSPHYS */
4364 "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",
4367 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
4374 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
4380 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s',CHR(0)), %s, %s, %s, %s)",
4390 /* Q_UNFP - UPDATE_NFSPHYS */
4396 "nfsphys SET device = NVL('%s',CHR(0)), status = %s, allocated = %s, partsize = %s",
4399 "mach_id = %d AND dir = '%s'",
4406 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
4407 "adjust_nfsphys_allocation",
4412 "nfsphys SET allocated = allocated + %s",
4415 "mach_id = %d AND dir = '%s'",
4422 /* Q_DNFP - DELETE_NFSPHYS */
4431 "mach_id = %d AND dir = '%s'",
4438 /* Q_GQOT - GET_QUOTA */
4444 "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",
4447 "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",
4454 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
4455 "get_quota_by_filesys",
4460 "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",
4463 "fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
4470 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
4476 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
4486 /* Q_UQOT - UPDATE_QUOTA */
4492 "quota SET quota = %s",
4502 /* Q_DQOT - DELETE_QUOTA */
4518 /* Q_GNFQ - GET_NFS_QUOTAS */
4524 "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",
4527 "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'",
4529 "fs.label, u.login",
4534 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
4535 "get_nfs_quotas_by_partition",
4540 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
4543 "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",
4545 "fs.label, np.dir, u.login",
4550 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
4556 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
4566 /* Q_UNFQ - UPDATE_NFS_QUOTA */
4572 "quota SET quota = %s",
4582 /* Q_DNFQ - DELETE_NFS_QUOTA */
4598 /* Q_GZCL - GET_ZEPHYR_CLASS */
4604 "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",
4607 "class LIKE '%s' ESCAPE '*'",
4614 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4620 "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)",
4630 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4631 "update_zephyr_class",
4636 "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",
4646 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4647 "delete_zephyr_class",
4662 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
4663 "get_server_host_access",
4668 "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",
4671 "m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
4678 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
4679 "add_server_host_access",
4684 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d,'%s',%d)",
4694 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
4695 "update_server_host_access",
4700 "hostaccess SET acl_type = '%s', acl_id = %d",
4710 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
4711 "delete_server_host_access",
4726 /* Q_GSVC - GET_SERVICE */
4732 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
4735 "name LIKE '%s' ESCAPE '*'",
4742 /* Q_ASVC - ADD_SERVICE */
4748 "INTO services (name, protocol, port, description) VALUES ('%s','%s',%s,NVL('%s',CHR(0)))",
4758 /* Q_DSVC - DELETE_SERVICE */
4774 /* Q_GPCE - GET_PRINTCAP_ENTRY */
4775 "get_printcap_entry",
4780 "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",
4783 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4790 /* Q_APCE - ADD_PRINTCAP_ENTRY */
4791 "add_printcap_entry",
4796 "INTO printcap (name, mach_id, dir, rp, quotaserver, auth, price, comments) VALUES ('%s',%d,'%s','%s',%d,%s,%s,NVL('%s',CHR(0)))",
4806 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
4807 "delete_printcap_entry",
4822 /* Q_GPCP - GET_PRINTCAP */
4828 "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",
4831 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4838 /* Q_DPCP - DELETE_PRINTCAP */
4854 /* Q_GPDM - GET_PALLADIUM */
4860 "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",
4863 "pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
4870 /* Q_APDM - ADD_PALLADIUM */
4876 "INTO palladium (name, identifier, mach_id) VALUES ('%s',%s,%d)",
4886 /* Q_DPDM - DELETE_PALLADIUM */
4902 /* Q_GALI - GET_ALIAS */
4908 "name, type, trans FROM alias",
4911 "name LIKE '%s' ESCAPE '*' AND type LIKE '%s' ESCAPE '*' AND trans LIKE '%s' ESCAPE '*'",
4913 "name, type, trans",
4918 /* Q_AALI - ADD_ALIAS */
4924 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
4934 /* Q_DALI - DELETE_ALIAS */
4943 "name = '%s' AND type = '%s' AND trans = '%s'",
4950 /* Q_GVAL - GET_VALUE */
4956 "value FROM numvalues",
4966 /* Q_AVAL - ADD_VALUE */
4972 "INTO numvalues (name, value) VALUES ('%s', %s)",
4982 /* Q_UVAL - UPDATE_VALUE */
4988 "numvalues SET value = %s",
4998 /* Q_DVAL - DELETE_VALUE */
5014 /* Q_GATS - GET_ALL_TABLE_STATS */
5015 "get_all_table_stats",
5020 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
5030 /* Q__SDL - _SET_DEBUG_LEVEL */
5047 int QueryCount2 = (sizeof Queries2 / sizeof (struct query));