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 VOsort0[] = {
185 static struct valobj VOwild0[] = {
189 static struct valobj VOupwild0[] = {
193 static struct valobj VOwild0sort[] = {
198 static struct valobj VOupwild0sort[] = {
203 static struct valobj VOwild01sort0[] = {
209 static struct valobj VOwild01sort01[] = {
216 static struct valobj VOwild012sort0[] = { /* get_alias */
224 static struct valobj VOuser0[] = {
225 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
229 static struct valobj VOuser0lock[] = {
230 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
231 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
234 static struct valobj VOmach0[] = {
235 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
238 static struct valobj VOclu0[] = {
239 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
242 static struct valobj VOlist0[] = {
243 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
247 static struct valobj VOchar0[] = {
253 static struct valobj VOfilsys0user1[] = {
254 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
255 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
256 {V_ID, 1, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
261 * Commonly used validation records defined here so that they may
265 static struct validate VDmach = { VOmach0, 1 };
266 static struct validate VDwild0= { VOwild0, 1 };
267 static struct validate VDupwild0= { VOupwild0, 1 };
268 static struct validate VDwild2sort2 = { VOwild01sort01, 4 };
269 static struct validate VDwild3sort1 = { VOwild012sort0, 4 };
270 static struct validate VDsortf = {
282 static struct validate VDwildsortf = {
293 static struct validate VDsort0= { VOsort0, 1 };
296 static struct validate VDupwildsortf = {
309 static char *galo_fields[] = {
310 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE,
313 static char *gual_fields[] = {
315 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
316 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
319 static char *gubl_fields[] = {
321 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
322 MIT_ID, CLASS, MOD1, MOD2, MOD3,
325 static struct validate gubl_validate =
338 static char *guau_fields[] = {
340 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
341 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
344 static char *guan_fields[] = {
346 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
347 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
350 static struct validate guan_validate =
363 static char *guac_fields[] = {
365 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
366 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
369 static char *guam_fields[] = {
371 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
372 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
375 static char *gubu_fields[] = {
377 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
378 MIT_ID, CLASS, MOD1, MOD2, MOD3,
381 static struct validate gubu_validate =
394 static char *gubn_fields[] = {
396 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
397 MIT_ID, CLASS, MOD1, MOD2, MOD3,
400 static struct validate gubn_validate =
413 static char *gubc_fields[] = {
415 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
416 MIT_ID, CLASS, MOD1, MOD2, MOD3,
419 static char *gubm_fields[] = {
421 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
422 MIT_ID, CLASS, MOD1, MOD2, MOD3,
425 static char *gudf_fields[] = {
427 "dirsuppress", "dirremote"
430 static struct validate gudf_validate =
443 static char *auac_fields[] = {
444 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
445 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
448 static struct valobj auac_valobj[] = {
449 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
450 {V_CHAR, 0, USERS_TABLE, LOGIN},
451 {V_CHAR, 2, USERS_TABLE, SHELL},
452 {V_CHAR, 3, USERS_TABLE, LAST},
453 {V_CHAR, 4, USERS_TABLE, FIRST},
454 {V_CHAR, 5, USERS_TABLE, MIDDLE},
455 {V_CHAR, 7, USERS_TABLE, MIT_ID},
456 {V_TYPE, 8, 0, CLASS, 0, MR_BAD_CLASS},
457 {V_ID, 9, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
460 static struct validate auac_validate = {
472 static struct validate ausr_validate = {
484 static char *rusr_fields[] = {
485 UID, LOGIN, "fs_type"
488 static struct valobj rusr_valobj[] = {
489 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
490 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
491 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
492 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
493 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
494 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
495 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
496 {V_RLOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
499 static struct validate rusr_validate = {
511 static char *uuac_fields[] = {
513 "newlogin", UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
514 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
517 static struct valobj uuac_valobj[] = {
518 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
519 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
520 {V_RENAME, 1, USERS_TABLE, LOGIN, USERS_ID, MR_NOT_UNIQUE},
521 {V_CHAR, 3, USERS_TABLE, SHELL},
522 {V_CHAR, 4, USERS_TABLE, FIRST},
523 {V_CHAR, 5, USERS_TABLE, LAST},
524 {V_CHAR, 6, USERS_TABLE, MIDDLE},
525 {V_CHAR, 8, USERS_TABLE, MIT_ID},
526 {V_TYPE, 9, 0, CLASS, 0, MR_BAD_CLASS},
527 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
530 static struct validate uuac_validate = {
542 static struct validate uusr_validate = {
554 static char *uush_fields[] = {
559 static struct valobj uush_valobj[] = {
560 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
561 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
562 {V_CHAR, 1, USERS_TABLE, SHELL},
565 static struct validate uush_validate = {
577 static char *uust_fields[] = {
582 static char *uuss_fields[] = {
587 static struct validate uust_validate = {
599 static char *uudf_fields[] = {
601 "dirsuppress", "dirremote"
604 static struct validate uudf_validate = {
616 static char *dusr_fields[] = {
620 struct valobj dusr_valobj[]= {
621 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
622 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
623 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
624 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
625 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
626 {V_LOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
627 {V_LOCK, 0, KRBMAP_TABLE, 0, "users_id", MR_DEADLOCK},
628 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
631 static struct validate dusr_validate = {
643 static char *dubu_fields[] = {
647 static struct valobj dubu_valobj[] = {
648 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
649 {V_ID, 0, USERS_TABLE, UID, USERS_ID, MR_USER}
652 static struct validate dubu_validate = {
664 static char *gkum_fields[] = { LOGIN, "kerberos",
667 static char *akum_fields[] = { LOGIN, "kerberos" };
669 static struct valobj akum_valobj[] =
671 {V_LOCK, 0, KRBMAP_TABLE, 0, "users_id", MR_DEADLOCK},
672 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
673 {V_ID, 1, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
676 static struct validate akum_validate =
681 "users_id = %d or string_id = %d",
689 static struct validate dkum_validate =
694 "users_id = %d and string_id = %d",
702 static char *gfbl_fields[] = {
704 LOGIN, "fullname", "nickname", "home_addr",
705 "home_phone", "office_addr", "office_phone", "department",
706 "affiliation", MOD1, MOD2, MOD3,
709 static struct validate gfbl_validate = {
721 static char *ufbl_fields[] = {
723 "fullname", "nickname", "home_addr",
724 "home_phone", "office_addr", "office_phone", "department",
728 static struct valobj ufbl_valobj[] = {
729 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
730 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
731 {V_LEN, 1, USERS_TABLE, "fullname"},
732 {V_LEN, 2, USERS_TABLE, "nickname"},
733 {V_LEN, 3, USERS_TABLE, "home_addr"},
734 {V_LEN, 4, USERS_TABLE, "home_phone"},
735 {V_LEN, 5, USERS_TABLE, "office_addr"},
736 {V_LEN, 6, USERS_TABLE, "office_phone"},
737 {V_LEN, 7, USERS_TABLE, "department"},
738 {V_LEN, 8, USERS_TABLE, "affiliation"},
741 static struct validate ufbl_validate = {
753 static char *gpob_fields[] = {
755 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
758 static struct validate gpob_validate = {
762 "potype != 'NONE' and users_id = %d",
770 static char *gpox_fields[] = {
774 struct valobj gpox_valobj[] = {
775 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
776 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK}
779 static struct validate gpox_validate = {
791 static char *spob_fields[] = {
795 static struct valobj spob_valobj[] = {
796 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
797 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
798 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
799 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
802 static struct validate spob_validate = /* SET_POBOX */
815 struct valobj spop_valobj[] = {
816 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
817 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
818 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
821 static struct validate spop_validate = /* SET_POBOX_POP */
834 static struct validate dpob_validate = /* DELETE_POBOX */
847 static char *gmac_fields[] = {
849 NAME, TYPE, MOD1, MOD2, MOD3,
852 static char *ghst_fields[] = {
853 NAME, ADDRESS, "location", "network",
854 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,
857 static struct valobj ghst_valobj[] = {
865 static struct validate ghst_validate = {
877 static char *ahst_fields[] = {
878 NAME, "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
881 static struct valobj ahst_valobj[] = {
882 {V_CHAR, 0, MACHINE_TABLE, NAME},
883 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
884 {V_CHAR, 2, MACHINE_TABLE, "model"},
885 {V_CHAR, 3, MACHINE_TABLE, "os"},
886 {V_CHAR, 4, MACHINE_TABLE, "location"},
887 {V_CHAR, 5, MACHINE_TABLE, "contact"},
888 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
889 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
890 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
891 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
892 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
893 {V_ID, 8, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
894 {V_TYPE, 10, 0, ACE_TYPE, 0, MR_ACE},
895 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
896 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
897 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
900 static struct validate ahst_validate = {
904 "name = UPPER('%s')",
909 set_uppercase_modtime,
912 static char *uhst_fields[] = {
914 "newname", "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
917 static struct valobj uhst_valobj[] = {
918 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
919 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
920 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
921 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
922 {V_CHAR, 0, MACHINE_TABLE, "name"},
923 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
924 {V_RENAME, 1, MACHINE_TABLE, NAME, MACH_ID, MR_NOT_UNIQUE},
925 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
926 {V_CHAR, 3, MACHINE_TABLE, "model"},
927 {V_CHAR, 4, MACHINE_TABLE, "os"},
928 {V_CHAR, 5, MACHINE_TABLE, "location"},
929 {V_ID, 9, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
930 {V_TYPE, 11, 0, ACE_TYPE, 0, MR_ACE},
931 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
932 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
933 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
936 static struct validate uhst_validate = {
948 static char *dhst_fields[] = {
952 static struct valobj dhst_valobj[] = {
953 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
954 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
955 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
956 {V_RLOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
957 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
958 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
959 {V_LOCK, 0, MCMAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
960 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
961 {V_RLOCK, 0, PALLADIUM_TABLE, 0, MACH_ID, MR_DEADLOCK},
962 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
965 static struct validate dhst_validate = {
977 static char *ghal_fields[] = {
978 ALIAS, "canonical_hostname",
979 ALIAS, "canonical_hostname"
982 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},
1050 static struct validate gsnt_validate = {
1062 static char *asnt_fields[] = {
1063 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1066 static struct valobj asnt_valobj[] = {
1067 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1068 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1069 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1070 {V_CHAR, 0, SUBNET_TABLE, NAME},
1071 {V_LEN, 1, SUBNET_TABLE, DESC},
1072 {V_LEN, 6, SUBNET_TABLE, "prefix"},
1073 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1074 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
1077 static struct validate asnt_validate =
1082 "name = UPPER('%s')",
1087 set_uppercase_modtime,
1090 static char *usnt_fields[] = {
1092 "newname", DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1095 static struct valobj usnt_valobj[] = {
1096 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1097 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1098 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1099 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_NO_MATCH},
1100 {V_RENAME, 1, SUBNET_TABLE, NAME, SNET_ID, MR_NOT_UNIQUE},
1101 {V_LEN, 2, SUBNET_TABLE, DESC},
1102 {V_LEN, 7, SUBNET_TABLE, "prefix"},
1103 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
1104 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
1107 static struct validate usnt_validate =
1120 static char *dsnt_fields[] = {
1124 static struct valobj dsnt_valobj[] = {
1125 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1126 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1127 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
1130 static struct validate dsnt_validate = {
1142 static char *gclu_fields[] = {
1144 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
1147 static char *aclu_fields[] = {
1148 NAME, DESC, LOCATION,
1151 static struct valobj aclu_valobj[] = {
1152 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1153 {V_CHAR, 0, CLUSTER_TABLE, NAME},
1154 {V_LEN, 1, CLUSTER_TABLE, DESC},
1155 {V_LEN, 2, CLUSTER_TABLE, LOCATION},
1158 static struct validate aclu_validate =
1171 static char *uclu_fields[] = {
1173 "newname", DESC, LOCATION,
1176 static struct valobj uclu_valobj[] = {
1177 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1178 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1179 {V_RENAME, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_NOT_UNIQUE},
1180 {V_LEN, 2, CLUSTER_TABLE, DESC},
1181 {V_LEN, 3, CLUSTER_TABLE, LOCATION},
1184 static struct validate uclu_validate = {
1196 static char *dclu_fields[] = {
1200 static struct validate dclu_validate = {
1212 static char *gmcm_fields[] = {
1217 static struct valobj gmcm_valobj[] =
1225 static struct validate gmcm_validate = { gmcm_valobj, 4 };
1227 static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1228 { /* DELETE_MACHINE_FROM_CLUSTER */
1229 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1230 {V_ID, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1233 static struct validate amtc_validate = /* for amtc and dmfc */
1238 "mach_id = %d and clu_id = %d",
1243 set_mach_modtime_by_id,
1246 static char *gcld_fields[] = {
1247 CLUSTER, "serv_label",
1248 CLUSTER, "serv_label", "serv_cluster",
1251 static char *acld_fields[] = {
1252 CLUSTER, "serv_label", "serv_cluster",
1255 static struct valobj acld_valobj[] =
1257 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1258 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1259 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
1262 static struct validate acld_validate =
1267 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1272 set_cluster_modtime_by_id,
1275 static struct valobj dcld_valobj[] =
1277 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1280 static struct validate dcld_validate =
1285 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1290 set_cluster_modtime_by_id,
1293 static char *glin_fields[] = {
1295 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1296 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
1299 static struct validate glin_validate = {
1306 access_vis_list_by_name,
1311 static char *alis_fields[] = {
1312 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1313 ACE_TYPE, ACE_NAME, DESC,
1316 static struct valobj alis_valobj[] = {
1317 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1318 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1319 {V_CHAR, 0, LIST_TABLE, NAME},
1320 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1321 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
1322 {V_LEN, 9, LIST_TABLE, DESC},
1325 static struct validate alis_validate = {
1337 static char *ulis_fields[] = {
1339 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1340 ACE_TYPE, ACE_NAME, DESC,
1343 static struct valobj ulis_valobj[] = {
1344 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1345 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1346 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1347 {V_RENAME, 1, LIST_TABLE, NAME, LIST_ID, MR_NOT_UNIQUE},
1348 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
1349 {V_CHAR, 1, LIST_TABLE, NAME},
1350 {V_LEN, 10, LIST_TABLE, DESC},
1353 static struct validate ulis_validate = {
1365 static char *dlis_fields[] = {
1369 static struct valobj dlis_valobj[] = {
1370 {V_RLOCK, 0, CAPACLS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1371 {V_RLOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1372 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1373 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1374 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1375 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1376 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1377 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1380 static struct validate dlis_validate = {
1392 static char *amtl_fields[] = {
1393 "list_name", "member_type", "member_name",
1396 static struct valobj amtl_valobj[] = {
1397 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1398 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1399 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1400 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1401 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
1404 static struct validate amtl_validate =
1417 static struct validate dmfl_validate =
1427 delete_member_from_list,
1430 static char *gaus_fields[] = {
1432 "use_type", "use_name",
1435 static struct valobj gaus_valobj[] = {
1436 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1437 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1438 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1439 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1440 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1441 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1442 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1445 static struct validate gaus_validate = {
1457 static char *qgli_fields[] = {
1458 "active", "publicflg", "hidden", "maillist", "grouplist",
1462 static struct valobj qgli_valobj[] = {
1463 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1464 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1465 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1466 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1467 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1470 static struct validate qgli_validate = {
1479 qualified_get_lists,
1482 static char *gmol_fields[] = {
1484 "member_type", "member_name",
1487 static struct valobj gmol_valobj[] = {
1488 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1489 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1490 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1493 static struct validate gmol_validate = {
1500 access_visible_list,
1502 get_members_of_list,
1505 static struct validate geml_validate = {
1512 access_visible_list,
1514 get_end_members_of_list,
1517 static char *glom_fields[] = {
1518 "member_type", "member_name",
1519 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
1522 static struct valobj glom_valobj[] = {
1523 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1524 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1525 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1526 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1527 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1531 static struct validate glom_validate = {
1540 get_lists_of_member,
1543 static char *cmol_fields[] = {
1548 static struct validate cmol_validate = {
1555 access_visible_list,
1557 count_members_of_list,
1560 static char *gsin_fields[] = {
1562 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
1563 TYPE, "enable", "inprogress", "harderror", "errmsg",
1564 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
1567 static struct valobj gsin_valobj[] =
1569 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1570 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1574 static struct validate gsin_validate =
1587 static char *qgsv_fields[] = {
1588 "enable", "inprogress", "harderror",
1592 static struct valobj qgsv_valobj[] = {
1593 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1594 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1595 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1598 static struct validate qgsv_validate = {
1607 qualified_get_server,
1610 static char *asin_fields[] = {
1611 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
1615 static struct valobj asin_valobj[] = {
1616 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1617 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1618 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1619 {V_CHAR, 0, SERVERS_TABLE, NAME},
1620 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1621 {V_LEN, 3, SERVERS_TABLE, "script"},
1622 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
1623 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
1624 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
1627 static struct validate asin_validate = /* for asin, usin */
1632 "name = UPPER('%s')",
1637 set_uppercase_modtime,
1640 static struct validate rsve_validate = {
1644 "name = UPPER('%s')",
1649 set_uppercase_modtime,
1652 static char *ssif_fields[] = {
1653 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
1656 static struct valobj ssif_valobj[] = {
1657 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1658 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1659 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1660 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1663 static struct validate ssif_validate = {
1667 "name = UPPER('%s')",
1675 static char *dsin_fields[] = {
1679 static struct validate dsin_validate = {
1683 "name = UPPER('%s')",
1691 static char *gshi_fields[] = {
1693 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
1694 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
1695 "value3", MOD1, MOD2, MOD3,
1698 static struct valobj gshi_valobj[] = {
1703 static struct validate gshi_validate = {
1715 static char *qgsh_fields[] = {
1716 "service", "enable", "override", "success", "inprogress", "hosterror",
1720 static struct valobj qgsh_valobj[] = {
1721 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1722 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1723 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1724 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1725 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
1728 static struct validate qgsh_validate = {
1737 qualified_get_serverhost,
1740 static char *ashi_fields[] = {
1741 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
1744 static struct valobj ashi_valobj[] = {
1745 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1746 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1747 {V_LOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1748 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1749 {V_CHAR, 0, SERVERHOSTS_TABLE, NAME},
1750 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
1753 static struct validate ashi_validate = /* ashi & ushi */
1758 "service = UPPER('%s') AND mach_id = %d",
1763 set_serverhost_modtime,
1766 static struct validate rshe_validate =
1771 "service = UPPER('%s') AND mach_id = %d",
1776 set_serverhost_modtime,
1779 static struct validate ssho_validate =
1784 "service = UPPER('%s') AND mach_id = %d",
1792 static char *sshi_fields[] = {
1793 "service", MACHINE, "override", "success", "inprogress",
1794 "hosterror", "errmsg", "ltt", "lts",
1797 static struct valobj sshi_valobj[] = {
1798 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1799 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1800 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE}, /** Was this ok to add? */
1801 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1804 static struct validate sshi_validate =
1817 static char *dshi_fields[] = {
1821 static struct validate dshi_validate =
1826 "service = UPPER('%s') AND mach_id = %d",
1834 static char *gslo_fields[] = {
1839 static char *gfsl_fields[] = {
1841 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1842 "create", "lockertype", MOD1, MOD2, MOD3,
1845 static char *gfsm_fields[] = {
1847 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1848 "create", "lockertype", MOD1, MOD2, MOD3,
1851 static struct valobj gfsm_valobj[] = {
1852 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1853 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1856 static struct validate gfsm_validate = {
1868 static char *gfsn_fields[] = {
1869 MACHINE, "parition",
1870 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1871 "create", "lockertype", MOD1, MOD2, MOD3,
1874 static struct valobj gfsn_valobj[] =
1876 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1877 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1881 static struct validate gfsn_validate = {
1893 static char *gfsp_fields[] = {
1895 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1896 "create", "lockertype", MOD1, MOD2, MOD3,
1899 static char *gfsg_fields[] = {
1901 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1902 "create", "lockertype", MOD1, MOD2, MOD3,
1905 static struct valobj gfsg_valobj[] = {
1906 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1907 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1910 static struct validate gfsg_validate = {
1922 static char *afil_fields[] = {
1923 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1924 "create", "lockertype",
1927 static struct valobj afil_valobj[] = {
1928 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1929 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1930 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1931 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1932 {V_CHAR, 0, FILESYS_TABLE, LABEL},
1933 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
1934 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1935 {V_CHAR, 3, FILESYS_TABLE, NAME},
1936 {V_LEN, 4, FILESYS_TABLE, "mount"},
1937 {V_LEN, 6, FILESYS_TABLE, COMMENTS},
1938 {V_ID, 7, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1939 {V_ID, 8, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1940 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
1943 static struct validate afil_validate = {
1952 set_filesys_modtime,
1955 static char *ufil_fields[] = {
1956 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", COMMENTS,
1957 "owner", "owners", "create", "lockertype",
1960 static struct valobj ufil_valobj[] = {
1961 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1962 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1963 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1964 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1965 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1966 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1967 {V_RENAME, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
1968 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
1969 {V_ID, 3, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1970 {V_CHAR, 4, FILESYS_TABLE, NAME},
1971 {V_LEN, 5, FILESYS_TABLE, "mount"},
1972 {V_LEN, 7, FILESYS_TABLE, COMMENTS},
1973 {V_ID, 8, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1974 {V_ID, 9, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1975 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
1978 static struct validate ufil_validate = {
1987 set_filesys_modtime,
1990 static char *dfil_fields[] = {
1994 static struct valobj dfil_valobj[] = {
1995 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1996 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
1997 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1998 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
1999 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2002 static struct validate dfil_validate = {
2014 static char *gfgm_fields[] = {
2015 "fsgroup", FILESYS, "sortkey"
2018 static struct valobj gfgm_valobj[] = {
2019 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2024 static struct validate gfgm_validate = {
2036 static struct valobj aftg_valobj[] = {
2037 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2038 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
2039 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2040 {V_ID, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2043 static struct validate aftg_validate = {
2047 "group_id = %d and filsys_id = %d",
2055 static char *ganf_fields[] = {
2056 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2059 static char *gnfp_fields[] = {
2061 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2064 static struct valobj gnfp_valobj[] = {
2065 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2066 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2070 static struct validate gnfp_validate = {
2082 static struct valobj anfp_valobj[] = {
2083 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2084 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2085 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2086 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2087 {V_LEN, 2, NFSPHYS_TABLE, "device"},
2090 static struct validate anfp_validate = {
2094 "mach_id = %d and dir = '%s'",
2099 set_nfsphys_modtime,
2102 static struct validate unfp_validate = {
2106 "mach_id = %d and dir = '%s'",
2111 set_nfsphys_modtime,
2114 static char *ajnf_fields[] = {
2115 MACHINE, DIR, "adjustment",
2118 static char *dnfp_fields[] = {
2122 static struct valobj dnfp_valobj[] = {
2123 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2124 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2125 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2126 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2130 static struct validate dnfp_validate = {
2134 "mach_id = %d and dir = '%s'",
2139 set_nfsphys_modtime,
2142 static char *gqot_fields[] = {
2143 FILESYS, TYPE, NAME,
2144 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2147 static struct valobj gqot_valobj[] = {
2148 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2149 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2150 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2151 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2152 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2154 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2155 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2156 {V_SORT, 0, 0, 0, 0, 0},
2159 static struct validate gqot_validate = {
2171 static char *gqbf_fields[] = {
2173 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2176 static struct validate gqbf_validate = {
2188 static char *aqot_fields[] = {
2189 FILESYS, TYPE, NAME, QUOTA,
2192 static struct valobj aqot_valobj[] = {
2193 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2194 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2195 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2196 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2197 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2198 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2199 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2200 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2203 static struct validate aqot_validate = {
2207 "filsys_id = %d and type = '%s' and entity_id = %d",
2215 static struct validate uqot_validate = {
2219 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2227 static struct validate dqot_validate = {
2231 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2239 static char *gnfq_fields[] = {
2241 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2244 static struct validate gnfq_validate = {
2256 static char *gnqp_fields[] = {
2258 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2261 static struct valobj gnqp_valobj[] = {
2262 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2266 static struct validate gnqp_validate = { gnqp_valobj, 2, };
2268 static char *anfq_fields[] = {
2269 FILESYS, LOGIN, QUOTA,
2272 static struct validate anfq_validate = {
2276 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2284 static struct validate unfq_validate = {
2288 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2296 static struct validate dnfq_validate = {
2300 "filsys_id = %d AND entity_id = %d",
2308 static char *gzcl_fields[] = {
2310 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2311 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
2314 static struct valobj gzcl_valobj[] = {
2315 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2316 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2317 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2321 static struct validate gzcl_validate = {
2333 static char *azcl_fields[] = {
2334 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2335 "iws_type", "iws_name", "iui_type", "iui_name",
2338 static struct valobj azcl_valobj[] = {
2339 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2340 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2341 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2342 {V_CHAR, 0, ZEPHYR_TABLE, CLASS},
2343 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2344 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
2345 {V_TYPE, 3, 0, ACE_TYPE, 0, MR_ACE},
2346 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
2347 {V_TYPE, 5, 0, ACE_TYPE, 0, MR_ACE},
2348 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
2349 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
2350 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
2353 static struct validate azcl_validate = {
2365 static char *uzcl_fields[] = {
2366 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2367 "iws_type", "iws_name", "iui_type", "iui_name",
2370 static struct valobj uzcl_valobj[] = {
2371 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2372 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2373 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2374 {V_RENAME, 1, ZEPHYR_TABLE, CLASS, 0, MR_NOT_UNIQUE},
2375 {V_TYPE, 2, 0, ACE_TYPE, 0, MR_ACE},
2376 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
2377 {V_TYPE, 4, 0, ACE_TYPE, 0, MR_ACE},
2378 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
2379 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
2380 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
2381 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
2382 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
2385 static struct validate uzcl_validate = {
2397 static struct validate dzcl_validate = {
2409 static char *gsha_fields[] = {
2411 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
2414 static struct validate gsha_validate =
2427 static char *asha_fields[] = {
2428 MACHINE, ACE_TYPE, ACE_NAME,
2431 static struct valobj asha_valobj[] = {
2432 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2433 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2434 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2435 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2436 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2439 static struct validate asha_validate =
2452 static char *gsvc_fields[] = {
2454 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3,
2457 static char *asvc_fields[] = {
2458 SERVICE, "protocol", "port", DESC,
2461 static struct valobj asvc_valobj[] = {
2462 {V_CHAR, 0, SERVICES_TABLE, NAME},
2463 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
2464 {V_CHAR, 3, SERVICES_TABLE, DESC},
2467 static struct validate asvc_validate = {
2479 static char *gpce_fields[] = {
2481 "printer", "spooling_host", "spool_directory", "rprinter",
2482 "quotaserver", "authenticate", "price", COMMENTS,
2486 static struct valobj gpce_valobj[] = {
2487 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2488 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2489 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
2494 static struct validate gpce_validate = {
2506 static char *apce_fields[] = {
2507 "printer", "spooling_host", "spool_directory", "rprinter",
2508 "quotaserver", "authenticate", "price", COMMENTS,
2512 static struct valobj apce_valobj[] = {
2513 {V_CHAR, 0, PRINTCAP_TABLE, NAME},
2514 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2515 {V_LEN, 2, PRINTCAP_TABLE, "dir"},
2516 {V_LEN, 3, PRINTCAP_TABLE, "rp"},
2517 {V_ID, 4, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2518 {V_CHAR, 7, PRINTCAP_TABLE, "comments"},
2521 static struct validate apce_validate = {
2533 static struct validate dpce_validate = {
2545 static char *gpcp_fields[] = {
2547 "printer", "spooling_host", "spool_directory", "rprinter", COMMENTS,
2551 static char *gpdm_fields[] = {
2553 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
2556 static char *apdm_fields[] = {
2557 NAME, "rpcnum", "host"
2560 static struct valobj apdm_valobj[] = {
2561 {V_CHAR, 0, PALLADIUM_TABLE, NAME},
2562 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2565 static struct validate apdm_validate = {
2577 static struct validate dpdm_validate = {
2589 static char *gali_fields[] = {
2590 NAME, TYPE, "trans",
2591 NAME, TYPE, "trans",
2594 static char *aali_fields[] = {
2595 NAME, TYPE, "trans",
2598 static struct valobj aali_valobj[] = {
2599 {V_CHAR, 0, ALIAS_TABLE, NAME},
2600 {V_TYPE, 1, 0, ALIAS, 0, MR_TYPE},
2601 {V_CHAR, 2, ALIAS_TABLE, "trans"},
2604 static struct validate aali_validate = {
2608 "name = '%s' and type = '%s' and trans = '%s'",
2616 static struct validate dali_validate = /* DELETE_ALIAS */
2621 "name = '%s' and type = '%s' and trans = '%s'",
2629 static char *gval_fields[] = {
2633 static struct valobj gval_valobj[] = {
2634 {V_NAME, 0, NUMVALUES_TABLE, NAME, 0, MR_NO_MATCH},
2637 static struct validate gval_validate = {
2649 static char *aval_fields[] = {
2653 static struct valobj aval_valobj[] = {
2654 {V_CHAR, 0, NUMVALUES_TABLE, NAME},
2657 static struct validate aval_validate = /* for aval, uval, and dval */
2670 static char *dval_fields[] = {
2674 static char *gats_fields[] = {
2675 "table_name", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
2678 static char *_sdl_fields[] = {
2682 static struct validate _sdl_validate =
2697 /* Generalized Query Definitions */
2699 /* Note: For any query which uses prefetch_value, the vcnt should be
2700 * one less than the number of %-format specifiers in the tlist.
2703 struct query Queries2[] = {
2705 /* Q_GALO - GET_ALL_LOGINS */
2711 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2720 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2721 "get_all_active_logins",
2726 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2735 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2736 "get_user_account_by_login",
2741 "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",
2744 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2750 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2751 "get_user_account_by_uid",
2756 "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",
2759 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
2765 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2766 "get_user_account_by_name",
2771 "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",
2774 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comments = str.string_id",
2780 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2781 "get_user_account_by_class",
2786 "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",
2789 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
2795 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2796 "get_user_account_by_id",
2801 "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",
2804 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2810 /* Q_GUBL - GET_USER_BY_LOGIN */
2811 "get_user_by_login",
2816 "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",
2819 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2825 /* Q_GUBU - GET_USER_BY_UID */
2831 "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",
2834 "u.unix_uid = %s AND u.users_id != 0",
2840 /* Q_GUBN - GET_USER_BY_NAME */
2846 "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",
2849 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2855 /* Q_GUBC - GET_USER_BY_CLASS */
2856 "get_user_by_class",
2861 "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",
2864 "u.type = UPPER('%s') AND u.users_id != 0",
2870 /* Q_GUBM - GET_USER_BY_MITID */
2871 "get_user_by_mitid",
2876 "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",
2879 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2885 /* Q_GUDF - GET_USER_DIRECTORY_FLAGS */
2886 "get_user_directory_flags",
2891 "u.dirsuppress, u.dirremote FROM users u",
2900 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2906 "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 */
2915 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
2921 "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)",
2930 /* Q_RUSR - REGISTER_USER */
2945 /* Q_UUAC - UPDATE_USER_ACCOUNT */
2946 "update_user_account",
2951 "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 */
2960 /* Q_UUSR - UPDATE_USER */
2966 "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'",
2975 /* Q_UUSH - UPDATE_USER_SHELL */
2976 "update_user_shell",
2981 "users SET shell = '%s'",
2990 /* Q_UUST - UPDATE_USER_STATUS */
2991 "update_user_status",
2996 "users SET status = %s",
3005 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
3006 "update_user_security_status",
3011 "users SET secure = %s",
3020 /* Q_UUDF - UPDATE_USER_DIRECTORY_FLAGS */
3021 "update_user_directory_flags",
3026 "users SET dirsuppress = %s, dirremote = %s",
3035 /* Q_DUSR - DELETE_USER */
3050 /* Q_DUBU - DELETE_USER_BY_UID */
3051 "delete_user_by_uid",
3065 /* Q_GKUM - GET_KERBEROS_USER_MAP */
3066 "get_kerberos_user_map",
3071 "u.login, str.string FROM krbmap km, users u, strings str",
3074 "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",
3080 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3081 "add_kerberos_user_map",
3086 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
3095 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3096 "delete_kerberos_user_map",
3104 "users_id = %d AND string_id = %d",
3110 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3111 "get_finger_by_login",
3116 "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",
3125 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3126 "update_finger_by_login",
3131 "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))",
3140 /* Q_GPOB - GET_POBOX */
3146 "login, potype, pop_id || ':' || box_id, TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
3155 /* Q_GAPO - GET_ALL_POBOXES */
3161 "login, potype, pop_id || ':' || box_id FROM users",
3170 /* Q_GPOP - GET_POBOXES_POP */
3176 "login, potype, pop_id || ':' || box_id FROM users",
3185 /* Q_GPOF - GET_POBOXES_SMTP */
3191 "login, potype, pop_id || ':' || box_id FROM users",
3200 /* Q_SPOB - SET_POBOX */
3215 /* Q_SPOP - SET_POBOX_POP */
3221 "users SET potype = 'POP'",
3230 /* Q_DPOB - DELETE_POBOX */
3236 "users SET potype = 'NONE'",
3245 /* Q_GHST - GET_HOST */
3251 "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",
3254 "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",
3260 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3266 "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)",
3275 /* Q_UHST - UPDATE_HOST */
3281 "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",
3290 /* Q_DHST - DELETE_HOST */
3305 /* Q_GMAC - GET_MACHINE */
3311 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
3314 "name LIKE '%s' ESCAPE '*' AND mach_id != 0",
3320 /* Q_GHAL - GET_HOSTALIAS */
3326 "a.name, m.name FROM hostalias a, machine m",
3329 "m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
3335 /* Q_AHAL - ADD_HOSTALIAS */
3341 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'), %d)",
3350 /* Q_DHAL - DELETE_HOSTALIAS */
3359 "name = UPPER('%s') AND mach_id = %d",
3365 /* Q_GSNT - GET_SUBNET */
3371 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
3374 "name LIKE '%s' ESCAPE '*' and snet_id != 0",
3380 /* Q_ASNT - ADD_SUBNET */
3386 "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)",
3395 /* Q_USNT - UPDATE_SUBNET */
3401 "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",
3410 /* Q_DSNT - DELETE_SUBNET */
3425 /* Q_GCLU - GET_CLUSTER */
3431 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
3434 "name LIKE '%s' ESCAPE '*' AND clu_id != 0",
3440 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
3446 "INTO clusters (name, description, location, clu_id) VALUES ('%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s)",
3455 /* Q_UCLU - UPDATE_CLUSTER */
3461 "clusters SET name = '%s', description = NVL('%s', CHR(0)), location = NVL('%s', CHR(0))",
3470 /* Q_DCLU - DELETE_CLUSTER */
3485 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
3486 "get_machine_to_cluster_map",
3491 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
3494 "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",
3500 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3501 "add_machine_to_cluster",
3506 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
3515 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3516 "delete_machine_from_cluster",
3524 "mach_id = %d AND clu_id = %d",
3530 /* Q_GCLD - GET_CLUSTER_DATA */
3536 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
3539 "c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
3545 /* Q_ACLD - ADD_CLUSTER_DATA */
3551 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d, '%s', '%s')",
3560 /* Q_DCLD - DELETE_CLUSTER_DATA */
3561 "delete_cluster_data",
3569 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
3575 /* Q_GLIN - GET_LIST_INFO */
3590 /* Q_EXLN - EXPAND_LIST_NAMES */
3591 "expand_list_names",
3599 "name LIKE '%s' ESCAPE '*' AND list_id != 0",
3605 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
3611 "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)",
3620 /* Q_ULIS - UPDATE_LIST */
3626 "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))",
3635 /* Q_DLIS - DELETE_LIST */
3650 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3651 "add_member_to_list",
3665 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3666 "delete_member_from_list",
3680 /* Q_GAUS - GET_ACE_USE */
3695 /* Q_QGLI - QUALIFIED_GET_LISTS */
3696 "qualified_get_lists",
3710 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3711 "get_members_of_list",
3725 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
3726 "get_end_members_of_list",
3740 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3741 "get_lists_of_member",
3755 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3756 "count_members_of_list",
3770 /* Q_GSIN - GET_SERVER_INFO */
3776 "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",
3779 "name LIKE '%s' ESCAPE '*'",
3785 /* Q_QGSV - QUALIFIED_GET_SERVER */
3786 "qualified_get_server",
3800 /* Q_ASIN - ADD_SERVER_INFO */
3806 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'), %s, '%s', '%s', '%s', %s, '%s', %d)",
3815 /* Q_USIN - UPDATE_SERVER_INFO */
3816 "update_server_info",
3821 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
3824 "name = UPPER('%s')",
3830 /* Q_RSVE - RESET_SERVER_ERROR */
3831 "reset_server_error",
3836 "servers SET harderror = 0, dfcheck = dfgen",
3839 "name = UPPER('%s')",
3845 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3846 "set_server_internal_flags",
3851 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s', CHR(0))",
3854 "name = UPPER('%s')",
3860 /* Q_DSIN - DELETE_SERVER_INFO */
3861 "delete_server_info",
3869 "name = UPPER('%s')",
3875 /* Q_GSHI - GET_SERVER_HOST_INFO */
3876 "get_server_host_info",
3881 "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",
3884 "sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
3890 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
3891 "qualified_get_server_host",
3905 /* Q_ASHI - ADD_SERVER_HOST_INFO */
3906 "add_server_host_info",
3911 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s', CHR(0)))",
3920 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
3921 "update_server_host_info",
3926 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s', CHR(0))",
3929 "service = UPPER('%s') AND mach_id = %d",
3935 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
3936 "reset_server_host_error",
3941 "serverhosts SET hosterror = 0",
3944 "service = UPPER('%s') AND mach_id = %d",
3950 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
3951 "set_server_host_override",
3956 "serverhosts SET override = 1",
3959 "service = UPPER('%s') AND mach_id = %d",
3965 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
3966 "set_server_host_internal",
3971 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s', CHR(0)), ltt = %s, lts = %s",
3974 "service = UPPER('%s') AND mach_id = %d",
3980 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
3981 "delete_server_host_info",
3989 "service = UPPER('%s') AND mach_id = %d",
3995 /* Q_GSLO - GET_SERVER_LOCATIONS */
3996 "get_server_locations",
4001 "sh.service, m.name FROM serverhosts sh, machine m",
4004 "sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
4010 /* Q_GFSL - GET_FILESYS_BY_LABEL */
4011 "get_filesys_by_label",
4016 "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",
4019 "fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4025 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
4026 "get_filesys_by_machine",
4031 "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",
4034 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4040 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
4041 "get_filesys_by_nfsphys",
4046 "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",
4049 "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'",
4055 /* Q_GFSG - GET_FILESYS_BY_GROUP */
4056 "get_filesys_by_group",
4061 "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",
4064 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4070 /* Q_GFSP - GET_FILESYS_BY_PATH */
4071 "get_filesys_by_path",
4076 "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",
4079 "fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4085 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
4091 "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)",
4100 /* Q_UFIL - UPDATE_FILESYS */
4106 "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'",
4115 /* Q_DFIL - DELETE_FILESYS */
4130 /* Q_GFGM - GET_FSGROUP_MEMBERS */
4131 "get_fsgroup_members",
4136 "fs.label, fg.key FROM fsgroup fg, filesys fs",
4139 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
4145 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
4146 "add_filesys_to_fsgroup",
4151 "INTO fsgroup (group_id, filsys_id, key) VALUES (%d, %d, '%s')",
4160 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
4161 "remove_filesys_from_fsgroup",
4169 "group_id = %d AND filsys_id = %d",
4175 /* Q_GANF - GET_ALL_NFSPHYS */
4181 "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",
4184 "m.mach_id = np.mach_id",
4190 /* Q_GNFP - GET_NFSPHYS */
4196 "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",
4199 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
4205 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
4211 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s', CHR(0)), %s, %s, %s, %s)",
4220 /* Q_UNFP - UPDATE_NFSPHYS */
4226 "nfsphys SET device = NVL('%s', CHR(0)), status = %s, allocated = %s, partsize = %s",
4229 "mach_id = %d AND dir = '%s'",
4235 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
4236 "adjust_nfsphys_allocation",
4241 "nfsphys SET allocated = allocated + %s",
4244 "mach_id = %d AND dir = '%s'",
4250 /* Q_DNFP - DELETE_NFSPHYS */
4259 "mach_id = %d AND dir = '%s'",
4265 /* Q_GQOT - GET_QUOTA */
4271 "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",
4274 "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",
4280 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
4281 "get_quota_by_filesys",
4286 "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",
4289 "fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
4295 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
4301 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
4310 /* Q_UQOT - UPDATE_QUOTA */
4316 "quota SET quota = %s",
4325 /* Q_DQOT - DELETE_QUOTA */
4340 /* Q_GNFQ - GET_NFS_QUOTAS */
4346 "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",
4349 "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'",
4355 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
4356 "get_nfs_quotas_by_partition",
4361 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
4364 "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",
4370 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
4376 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
4385 /* Q_UNFQ - UPDATE_NFS_QUOTA */
4391 "quota SET quota = %s",
4400 /* Q_DNFQ - DELETE_NFS_QUOTA */
4415 /* Q_GZCL - GET_ZEPHYR_CLASS */
4421 "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",
4424 "class LIKE '%s' ESCAPE '*'",
4430 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4436 "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)",
4445 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4446 "update_zephyr_class",
4451 "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",
4460 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4461 "delete_zephyr_class",
4475 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
4476 "get_server_host_access",
4481 "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",
4484 "m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
4490 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
4491 "add_server_host_access",
4496 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d, '%s', %d)",
4505 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
4506 "update_server_host_access",
4511 "hostaccess SET acl_type = '%s', acl_id = %d",
4520 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
4521 "delete_server_host_access",
4535 /* Q_GSVC - GET_SERVICE */
4541 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
4544 "name LIKE '%s' ESCAPE '*'",
4550 /* Q_ASVC - ADD_SERVICE */
4556 "INTO services (name, protocol, port, description) VALUES ('%s', '%s', %s, NVL('%s', CHR(0)))",
4565 /* Q_DSVC - DELETE_SERVICE */
4580 /* Q_GPCE - GET_PRINTCAP_ENTRY */
4581 "get_printcap_entry",
4586 "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",
4589 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4595 /* Q_APCE - ADD_PRINTCAP_ENTRY */
4596 "add_printcap_entry",
4601 "INTO printcap (name, mach_id, dir, rp, quotaserver, auth, price, comments) VALUES ('%s', %d, '%s', '%s', %d, %s, %s, NVL('%s', CHR(0)))",
4610 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
4611 "delete_printcap_entry",
4625 /* Q_GPCP - GET_PRINTCAP */
4631 "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",
4634 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4640 /* Q_DPCP - DELETE_PRINTCAP */
4655 /* Q_GPDM - GET_PALLADIUM */
4661 "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",
4664 "pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
4670 /* Q_APDM - ADD_PALLADIUM */
4676 "INTO palladium (name, identifier, mach_id) VALUES ('%s', %s, %d)",
4685 /* Q_DPDM - DELETE_PALLADIUM */
4700 /* Q_GALI - GET_ALIAS */
4706 "name, type, trans FROM alias",
4709 "name LIKE '%s' ESCAPE '*' AND type LIKE '%s' ESCAPE '*' AND trans LIKE '%s' ESCAPE '*'",
4715 /* Q_AALI - ADD_ALIAS */
4721 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
4730 /* Q_DALI - DELETE_ALIAS */
4739 "name = '%s' AND type = '%s' AND trans = '%s'",
4745 /* Q_GVAL - GET_VALUE */
4751 "value FROM numvalues",
4760 /* Q_AVAL - ADD_VALUE */
4766 "INTO numvalues (name, value) VALUES ('%s', %s)",
4775 /* Q_UVAL - UPDATE_VALUE */
4781 "numvalues SET value = %s",
4790 /* Q_DVAL - DELETE_VALUE */
4805 /* Q_GATS - GET_ALL_TABLE_STATS */
4806 "get_all_table_stats",
4811 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
4820 /* Q__SDL - _SET_DEBUG_LEVEL */
4836 int QueryCount2 = (sizeof(Queries2) / sizeof(struct query));