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},
677 static struct validate akum_validate =
682 "users_id = %d or string_id = %d",
690 static struct validate dkum_validate =
695 "users_id = %d and string_id = %d",
703 static char *gfbl_fields[] = {
705 LOGIN, "fullname", "nickname", "home_addr",
706 "home_phone", "office_addr", "office_phone", "department",
707 "affiliation", MOD1, MOD2, MOD3,
710 static struct validate gfbl_validate = {
722 static char *ufbl_fields[] = {
724 "fullname", "nickname", "home_addr",
725 "home_phone", "office_addr", "office_phone", "department",
729 static struct valobj ufbl_valobj[] = {
730 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
731 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
732 {V_LEN, 1, USERS_TABLE, "fullname"},
733 {V_LEN, 2, USERS_TABLE, "nickname"},
734 {V_LEN, 3, USERS_TABLE, "home_addr"},
735 {V_LEN, 4, USERS_TABLE, "home_phone"},
736 {V_LEN, 5, USERS_TABLE, "office_addr"},
737 {V_LEN, 6, USERS_TABLE, "office_phone"},
738 {V_LEN, 7, USERS_TABLE, "department"},
739 {V_LEN, 8, USERS_TABLE, "affiliation"},
742 static struct validate ufbl_validate = {
754 static char *gpob_fields[] = {
756 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
759 static struct validate gpob_validate = {
763 "potype != 'NONE' and users_id=%d",
771 static char *gpox_fields[] = {
775 struct valobj gpox_valobj[]={
776 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
777 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK}
780 static struct validate gpox_validate = {
792 static char *spob_fields[] = {
796 static struct valobj spob_valobj[] = {
797 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
798 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
799 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
800 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
803 static struct validate spob_validate = /* SET_POBOX */
816 struct valobj spop_valobj[] = {
817 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
818 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
819 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
822 static struct validate spop_validate = /* SET_POBOX_POP */
835 static struct validate dpob_validate = /* DELETE_POBOX */
848 static char *gmac_fields[] = {
850 NAME, TYPE, MOD1, MOD2, MOD3,
853 static char *ghst_fields[] = {
854 NAME, ADDRESS, "location", "network",
855 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,
858 static struct valobj ghst_valobj[] = {
866 static struct validate ghst_validate = {
878 static char *ahst_fields[] = {
879 NAME, "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
882 static struct valobj ahst_valobj[] = {
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"},
889 {V_RLOCK,0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
890 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
891 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
892 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
893 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
894 {V_ID, 8, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
895 {V_TYPE, 10, 0, ACE_TYPE, 0, MR_ACE},
896 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
897 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
898 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
901 static struct validate ahst_validate = {
905 "name = UPPER('%s')",
910 set_uppercase_modtime,
913 static char *uhst_fields[] = {
915 "newname", "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
918 static struct valobj uhst_valobj[] = {
919 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
920 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
921 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
922 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
923 {V_CHAR, 0, MACHINE_TABLE, "name"},
924 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
925 {V_RENAME, 1, MACHINE_TABLE, NAME, MACH_ID, MR_NOT_UNIQUE},
926 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
927 {V_CHAR, 3, MACHINE_TABLE, "model"},
928 {V_CHAR, 4, MACHINE_TABLE, "os"},
929 {V_CHAR, 5, MACHINE_TABLE, "location"},
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[] = {
989 static struct validate ghal_validate = {
1001 static struct valobj ahal_valobj[] = {
1002 {V_CHAR, 0, HOSTALIAS_TABLE, NAME},
1004 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1007 static struct validate ahal_validate = {
1019 static struct valobj dhal_valobj[] = {
1021 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1022 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1025 static struct validate dhal_validate = {
1029 "name = '%s' AND mach_id = %d",
1037 static char *gsnt_fields[] = {
1039 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1043 static struct valobj gsnt_valobj[] = {
1044 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1045 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1046 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1051 static struct validate gsnt_validate = {
1063 static char *asnt_fields[] = {
1064 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1067 static struct valobj asnt_valobj[] = {
1068 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1069 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1070 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1071 {V_CHAR, 0, SUBNET_TABLE, NAME},
1072 {V_LEN, 1, SUBNET_TABLE, DESC},
1073 {V_LEN, 6, SUBNET_TABLE, "prefix"},
1074 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1075 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
1078 static struct validate asnt_validate =
1083 "name = UPPER('%s')",
1088 set_uppercase_modtime,
1091 static char *usnt_fields[] = {
1093 "newname", DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1096 static struct valobj usnt_valobj[] = {
1097 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1098 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1099 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1100 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_NO_MATCH},
1101 {V_RENAME, 1, SUBNET_TABLE, NAME, SNET_ID, MR_NOT_UNIQUE},
1102 {V_LEN, 2, SUBNET_TABLE, DESC},
1103 {V_LEN, 7, SUBNET_TABLE, "prefix"},
1104 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
1105 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
1108 static struct validate usnt_validate =
1121 static char *dsnt_fields[] = {
1125 static struct valobj dsnt_valobj[] = {
1126 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1127 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1128 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
1131 static struct validate dsnt_validate = {
1143 static char *gclu_fields[] = {
1145 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
1148 static char *aclu_fields[] = {
1149 NAME, DESC, LOCATION,
1152 static struct valobj aclu_valobj[] = {
1153 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1154 {V_CHAR, 0, CLUSTER_TABLE, NAME},
1155 {V_LEN, 1, CLUSTER_TABLE, DESC},
1156 {V_LEN, 2, CLUSTER_TABLE, LOCATION},
1159 static struct validate aclu_validate =
1172 static char *uclu_fields[] = {
1174 "newname", DESC, LOCATION,
1177 static struct valobj uclu_valobj[] = {
1178 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1179 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1180 {V_RENAME, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_NOT_UNIQUE},
1181 {V_LEN, 2, CLUSTER_TABLE, DESC},
1182 {V_LEN, 3, CLUSTER_TABLE, LOCATION},
1185 static struct validate uclu_validate = {
1197 static char *dclu_fields[] = {
1201 static struct validate dclu_validate = {
1213 static char *gmcm_fields[] = {
1218 static struct valobj gmcm_valobj[] =
1226 static struct validate gmcm_validate = { gmcm_valobj, 4 };
1228 static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1229 { /* DELETE_MACHINE_FROM_CLUSTER */
1230 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1231 {V_ID, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1234 static struct validate amtc_validate = /* for amtc and dmfc */
1239 "mach_id = %d and clu_id = %d",
1244 set_mach_modtime_by_id,
1247 static char *gcld_fields[] = {
1248 CLUSTER, "serv_label",
1249 CLUSTER, "serv_label", "serv_cluster",
1252 static char *acld_fields[] = {
1253 CLUSTER, "serv_label", "serv_cluster",
1256 static struct valobj acld_valobj[] =
1258 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1259 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1260 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
1263 static struct validate acld_validate =
1268 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1273 set_cluster_modtime_by_id,
1276 static struct valobj dcld_valobj[] =
1278 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1281 static struct validate dcld_validate =
1286 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1291 set_cluster_modtime_by_id,
1294 static char *glin_fields[] = {
1296 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1297 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
1300 static struct validate glin_validate = {
1307 access_vis_list_by_name,
1312 static char *alis_fields[] = {
1313 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1314 ACE_TYPE, ACE_NAME, DESC,
1317 static struct valobj alis_valobj[] = {
1318 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1319 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1320 {V_CHAR, 0, LIST_TABLE, NAME},
1321 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1322 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
1323 {V_LEN, 9, LIST_TABLE, DESC},
1326 static struct validate alis_validate = {
1338 static char *ulis_fields[] = {
1340 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1341 ACE_TYPE, ACE_NAME, DESC,
1344 static struct valobj ulis_valobj[] = {
1345 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1346 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1347 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1348 {V_RENAME, 1, LIST_TABLE, NAME, LIST_ID, MR_NOT_UNIQUE},
1349 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
1350 {V_CHAR, 1, LIST_TABLE, NAME},
1351 {V_LEN, 10, LIST_TABLE, DESC},
1354 static struct validate ulis_validate = {
1366 static char *dlis_fields[] = {
1370 static struct valobj dlis_valobj[] ={
1371 {V_RLOCK, 0, CAPACLS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1372 {V_RLOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1373 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1374 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1375 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1376 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1377 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1378 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1381 static struct validate dlis_validate = {
1393 static char *amtl_fields[] = {
1394 "list_name", "member_type", "member_name",
1397 static struct valobj amtl_valobj[] = {
1398 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1399 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1400 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1401 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1402 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
1405 static struct validate amtl_validate =
1418 static struct validate dmfl_validate =
1428 delete_member_from_list,
1431 static char *gaus_fields[] = {
1433 "use_type", "use_name",
1436 static struct valobj gaus_valobj[] = {
1437 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1438 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1439 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1440 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1441 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1442 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1443 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1446 static struct validate gaus_validate = {
1458 static char *qgli_fields[] = {
1459 "active", "publicflg", "hidden", "maillist", "grouplist",
1463 static struct valobj qgli_valobj[] = {
1464 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1465 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1466 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1467 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1468 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1471 static struct validate qgli_validate = {
1480 qualified_get_lists,
1483 static char *gmol_fields[] = {
1485 "member_type", "member_name",
1488 static struct valobj gmol_valobj[]={
1489 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1490 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1491 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1494 static struct validate gmol_validate = {
1501 access_visible_list,
1503 get_members_of_list,
1506 static struct validate geml_validate = {
1513 access_visible_list,
1515 get_end_members_of_list,
1518 static char *glom_fields[] = {
1519 "member_type", "member_name",
1520 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
1523 static struct valobj glom_valobj[] = {
1524 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1525 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1526 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1527 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1528 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1532 static struct validate glom_validate = {
1541 get_lists_of_member,
1544 static char *cmol_fields[] = {
1549 static struct validate cmol_validate = {
1556 access_visible_list,
1558 count_members_of_list,
1561 static char *gsin_fields[] = {
1563 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
1564 TYPE, "enable", "inprogress", "harderror", "errmsg",
1565 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
1568 static struct valobj gsin_valobj[] =
1570 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1571 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1575 static struct validate gsin_validate =
1588 static char *qgsv_fields[] = {
1589 "enable", "inprogress", "harderror",
1593 static struct valobj qgsv_valobj[] = {
1594 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1595 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1596 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1599 static struct validate qgsv_validate = {
1608 qualified_get_server,
1611 static char *asin_fields[] = {
1612 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
1616 static struct valobj asin_valobj[] = {
1617 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1618 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1619 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1620 {V_CHAR, 0, SERVERS_TABLE, NAME},
1621 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1622 {V_LEN, 3, SERVERS_TABLE, "script"},
1623 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
1624 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
1625 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
1628 static struct validate asin_validate = /* for asin, usin */
1633 "name = UPPER('%s')",
1638 set_uppercase_modtime,
1641 static struct validate rsve_validate = {
1645 "name = UPPER('%s')",
1650 set_uppercase_modtime,
1653 static char *ssif_fields[] = {
1654 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
1657 static struct valobj ssif_valobj[] = {
1658 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1659 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1660 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1661 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1664 static struct validate ssif_validate = {
1668 "name = UPPER('%s')",
1676 static char *dsin_fields[] = {
1680 static struct validate dsin_validate = {
1684 "name = UPPER('%s')",
1692 static char *gshi_fields[] = {
1694 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
1695 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
1696 "value3", MOD1, MOD2, MOD3,
1699 static struct valobj gshi_valobj[] = {
1704 static struct validate gshi_validate = {
1716 static char *qgsh_fields[] = {
1717 "service", "enable", "override", "success", "inprogress", "hosterror",
1721 static struct valobj qgsh_valobj[] = {
1722 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1723 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1724 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1725 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1726 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
1729 static struct validate qgsh_validate = {
1738 qualified_get_serverhost,
1741 static char *ashi_fields[] = {
1742 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
1745 static struct valobj ashi_valobj[] = {
1746 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1747 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1748 {V_LOCK, 0, SERVERHOSTS_TABLE,0, MACH_ID, MR_DEADLOCK},
1749 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1750 {V_CHAR, 0, SERVERHOSTS_TABLE, NAME},
1751 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
1754 static struct validate ashi_validate = /* ashi & ushi */
1759 "service = UPPER('%s') AND mach_id = %d",
1764 set_serverhost_modtime,
1767 static struct validate rshe_validate =
1772 "service = UPPER('%s') AND mach_id = %d",
1777 set_serverhost_modtime,
1780 static struct validate ssho_validate =
1785 "service = UPPER('%s') AND mach_id = %d",
1793 static char *sshi_fields[] = {
1794 "service", MACHINE, "override", "success", "inprogress",
1795 "hosterror", "errmsg", "ltt", "lts",
1798 static struct valobj sshi_valobj[] = {
1799 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1800 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1801 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE}, /** Was this ok to add? */
1802 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1805 static struct validate sshi_validate =
1818 static char *dshi_fields[] = {
1822 static struct validate dshi_validate =
1827 "service = UPPER('%s') AND mach_id = %d",
1835 static char *gslo_fields[] = {
1840 static char *gfsl_fields[] = {
1842 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1843 "create", "lockertype", MOD1, MOD2, MOD3,
1846 static char *gfsm_fields[] = {
1848 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1849 "create", "lockertype", MOD1, MOD2, MOD3,
1852 static struct valobj gfsm_valobj[] = {
1853 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1854 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1857 static struct validate gfsm_validate = {
1869 static char *gfsn_fields[] = {
1870 MACHINE, "parition",
1871 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1872 "create", "lockertype", MOD1, MOD2, MOD3,
1875 static struct valobj gfsn_valobj[] =
1877 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1878 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1882 static struct validate gfsn_validate = {
1894 static char *gfsp_fields[] = {
1896 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1897 "create", "lockertype", MOD1, MOD2, MOD3,
1900 static char *gfsg_fields[] = {
1902 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1903 "create", "lockertype", MOD1, MOD2, MOD3,
1906 static struct valobj gfsg_valobj[] = {
1907 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1908 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1911 static struct validate gfsg_validate = {
1923 static char *afil_fields[] = {
1924 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1925 "create", "lockertype",
1928 static struct valobj afil_valobj[] = {
1929 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1930 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1931 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1932 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1933 {V_CHAR, 0, FILESYS_TABLE, LABEL},
1934 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
1935 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1936 {V_CHAR, 3, FILESYS_TABLE, NAME},
1937 {V_LEN, 4, FILESYS_TABLE, "mount"},
1938 {V_LEN, 6, FILESYS_TABLE, COMMENTS},
1939 {V_ID, 7, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1940 {V_ID, 8, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1941 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
1944 static struct validate afil_validate = {
1953 set_filesys_modtime,
1956 static char *ufil_fields[] = {
1957 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", COMMENTS,
1958 "owner", "owners", "create", "lockertype",
1961 static struct valobj ufil_valobj[] = {
1962 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1963 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1964 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1965 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1966 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1967 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1968 {V_RENAME, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
1969 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
1970 {V_ID, 3, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1971 {V_CHAR, 4, FILESYS_TABLE, NAME},
1972 {V_LEN, 5, FILESYS_TABLE, "mount"},
1973 {V_LEN, 7, FILESYS_TABLE, COMMENTS},
1974 {V_ID, 8, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1975 {V_ID, 9, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1976 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
1979 static struct validate ufil_validate = {
1988 set_filesys_modtime,
1991 static char *dfil_fields[] = {
1995 static struct valobj dfil_valobj[] = {
1996 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1997 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
1998 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1999 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
2000 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2003 static struct validate dfil_validate = {
2015 static char *gfgm_fields[] = {
2016 "fsgroup", FILESYS, "sortkey"
2019 static struct valobj gfgm_valobj[] = {
2020 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2025 static struct validate gfgm_validate = {
2037 static struct valobj aftg_valobj[] = {
2038 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2039 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
2040 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2041 {V_ID, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2044 static struct validate aftg_validate = {
2048 "group_id = %d and filsys_id = %d",
2056 static char *ganf_fields[] = {
2057 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2060 static char *gnfp_fields[] = {
2062 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2065 static struct valobj gnfp_valobj[] = {
2066 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2067 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2071 static struct validate gnfp_validate = {
2083 static struct valobj anfp_valobj[] = {
2084 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2085 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2086 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2087 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2088 {V_LEN, 2, NFSPHYS_TABLE, "device"},
2091 static struct validate anfp_validate = {
2095 "mach_id = %d and dir = '%s'",
2100 set_nfsphys_modtime,
2103 static struct validate unfp_validate = {
2107 "mach_id = %d and dir = '%s'",
2112 set_nfsphys_modtime,
2115 static char *ajnf_fields[] = {
2116 MACHINE, DIR, "adjustment",
2119 static char *dnfp_fields[] = {
2123 static struct valobj dnfp_valobj[] = {
2124 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2125 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2126 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2127 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2131 static struct validate dnfp_validate = {
2135 "mach_id = %d and dir = '%s'",
2140 set_nfsphys_modtime,
2143 static char *gqot_fields[] = {
2144 FILESYS, TYPE, NAME,
2145 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2148 static struct valobj gqot_valobj[] = {
2149 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2150 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2151 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2152 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2153 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2155 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2156 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2157 {V_SORT, 0, 0, 0, 0, 0},
2160 static struct validate gqot_validate = {
2172 static char *gqbf_fields[] = {
2174 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2177 static struct validate gqbf_validate = {
2189 static char *aqot_fields[] = {
2190 FILESYS, TYPE, NAME, QUOTA,
2193 static struct valobj aqot_valobj[] = {
2194 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2195 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2196 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2197 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2198 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2199 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2200 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2201 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2204 static struct validate aqot_validate = {
2208 "filsys_id = %d and type = '%s' and entity_id = %d",
2216 static struct validate uqot_validate = {
2220 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2228 static struct validate dqot_validate = {
2232 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2240 static char *gnfq_fields[] = {
2242 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2245 static struct validate gnfq_validate = {
2257 static char *gnqp_fields[] = {
2259 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2262 static struct valobj gnqp_valobj[] = {
2263 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2267 static struct validate gnqp_validate = { gnqp_valobj, 2, };
2269 static char *anfq_fields[] = {
2270 FILESYS, LOGIN, QUOTA,
2273 static struct validate anfq_validate = {
2277 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2285 static struct validate unfq_validate = {
2289 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2297 static struct validate dnfq_validate = {
2301 "filsys_id = %d AND entity_id = %d",
2309 static char *gzcl_fields[] = {
2311 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2312 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
2315 static struct valobj gzcl_valobj[] = {
2316 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2317 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2318 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2322 static struct validate gzcl_validate = {
2334 static char *azcl_fields[] = {
2335 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2336 "iws_type", "iws_name", "iui_type", "iui_name",
2339 static struct valobj azcl_valobj[] = {
2340 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2341 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2342 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2343 {V_CHAR, 0, ZEPHYR_TABLE, CLASS},
2344 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2345 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
2346 {V_TYPE, 3, 0, ACE_TYPE, 0, MR_ACE},
2347 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
2348 {V_TYPE, 5, 0, ACE_TYPE, 0, MR_ACE},
2349 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
2350 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
2351 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
2354 static struct validate azcl_validate = {
2366 static char *uzcl_fields[] = {
2367 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2368 "iws_type", "iws_name", "iui_type", "iui_name",
2371 static struct valobj uzcl_valobj[] = {
2372 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2373 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2374 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2375 {V_RENAME, 1, ZEPHYR_TABLE, CLASS, 0, MR_NOT_UNIQUE},
2376 {V_TYPE, 2, 0, ACE_TYPE, 0, MR_ACE},
2377 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
2378 {V_TYPE, 4, 0, ACE_TYPE, 0, MR_ACE},
2379 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
2380 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
2381 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
2382 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
2383 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
2386 static struct validate uzcl_validate = {
2398 static struct validate dzcl_validate = {
2410 static char *gsha_fields[] = {
2412 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
2415 static struct validate gsha_validate =
2428 static char *asha_fields[] = {
2429 MACHINE, ACE_TYPE, ACE_NAME,
2432 static struct valobj asha_valobj[] = {
2433 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2434 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2435 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2436 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2437 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2440 static struct validate asha_validate =
2453 static char *gsvc_fields[] = {
2455 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3,
2458 static char *asvc_fields[] = {
2459 SERVICE, "protocol", "port", DESC,
2462 static struct valobj asvc_valobj[] = {
2463 {V_CHAR, 0, SERVICES_TABLE, NAME},
2464 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
2465 {V_CHAR, 3, SERVICES_TABLE, DESC},
2468 static struct validate asvc_validate = {
2480 static char *gpce_fields[] = {
2482 "printer", "spooling_host", "spool_directory", "rprinter",
2483 "quotaserver", "authenticate", "price", COMMENTS,
2487 static struct valobj gpce_valobj[]={
2488 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2489 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2490 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
2495 static struct validate gpce_validate = {
2507 static char *apce_fields[] = {
2508 "printer", "spooling_host", "spool_directory", "rprinter",
2509 "quotaserver", "authenticate", "price", COMMENTS,
2513 static struct valobj apce_valobj[] = {
2514 {V_CHAR, 0, PRINTCAP_TABLE, NAME},
2515 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2516 {V_LEN, 2, PRINTCAP_TABLE, "dir"},
2517 {V_LEN, 3, PRINTCAP_TABLE, "rp"},
2518 {V_ID, 4, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2519 {V_CHAR, 7, PRINTCAP_TABLE, "comments"},
2522 static struct validate apce_validate = {
2534 static struct validate dpce_validate = {
2546 static char *gpcp_fields[] = {
2548 "printer", "spooling_host", "spool_directory", "rprinter", COMMENTS,
2552 static char *gpdm_fields[] = {
2554 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
2557 static char *apdm_fields[] = {
2558 NAME, "rpcnum", "host"
2561 static struct valobj apdm_valobj[] = {
2562 {V_CHAR, 0, PALLADIUM_TABLE, NAME},
2563 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2566 static struct validate apdm_validate = {
2578 static struct validate dpdm_validate = {
2590 static char *gali_fields[] = {
2591 NAME, TYPE, "trans",
2592 NAME, TYPE, "trans",
2595 static char *aali_fields[] = {
2596 NAME, TYPE, "trans",
2599 static struct valobj aali_valobj[] = {
2600 {V_CHAR, 0, ALIAS_TABLE, NAME},
2601 {V_TYPE, 1, 0, ALIAS, 0, MR_TYPE},
2602 {V_CHAR, 2, ALIAS_TABLE, "trans"},
2605 static struct validate aali_validate = {
2609 "name = '%s' and type = '%s' and trans = '%s'",
2617 static struct validate dali_validate = /* DELETE_ALIAS */
2622 "name = '%s' and type = '%s' and trans = '%s'",
2630 static char *gval_fields[] = {
2634 static struct valobj gval_valobj[] = {
2635 {V_NAME, 0, NUMVALUES_TABLE, NAME, 0, MR_NO_MATCH},
2638 static struct validate gval_validate = {
2650 static char *aval_fields[] = {
2654 static struct valobj aval_valobj[] = {
2655 {V_CHAR, 0, NUMVALUES_TABLE, NAME},
2658 static struct validate aval_validate = /* for aval, uval, and dval */
2671 static char *dval_fields[] = {
2675 static char *gats_fields[] = {
2676 "table_name", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
2679 static char *_sdl_fields[] = {
2683 static struct validate _sdl_validate =
2698 /* Generalized Query Definitions */
2700 /* Note: For any query which uses prefetch_value, the vcnt should be
2701 * one less than the number of %-format specifiers in the tlist.
2704 struct query Queries2[] = {
2706 /* Q_GALO - GET_ALL_LOGINS */
2712 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2721 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2722 "get_all_active_logins",
2727 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2736 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2737 "get_user_account_by_login",
2742 "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",
2745 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2751 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2752 "get_user_account_by_uid",
2757 "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",
2760 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
2766 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2767 "get_user_account_by_name",
2772 "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",
2775 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comments = str.string_id",
2781 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2782 "get_user_account_by_class",
2787 "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",
2790 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
2796 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2797 "get_user_account_by_id",
2802 "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",
2805 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2811 /* Q_GUBL - GET_USER_BY_LOGIN */
2812 "get_user_by_login",
2817 "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",
2820 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2826 /* Q_GUBU - GET_USER_BY_UID */
2832 "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",
2835 "u.unix_uid = %s AND u.users_id != 0",
2841 /* Q_GUBN - GET_USER_BY_NAME */
2847 "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",
2850 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2856 /* Q_GUBC - GET_USER_BY_CLASS */
2857 "get_user_by_class",
2862 "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",
2865 "u.type = UPPER('%s') AND u.users_id != 0",
2871 /* Q_GUBM - GET_USER_BY_MITID */
2872 "get_user_by_mitid",
2877 "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",
2880 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2886 /* Q_GUDF - GET_USER_DIRECTORY_FLAGS */
2887 "get_user_directory_flags",
2892 "u.dirsuppress, u.dirremote FROM users u",
2901 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2907 "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 */
2916 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
2922 "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)",
2931 /* Q_RUSR - REGISTER_USER */
2946 /* Q_UUAC - UPDATE_USER_ACCOUNT */
2947 "update_user_account",
2952 "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 */
2961 /* Q_UUSR - UPDATE_USER */
2967 "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'",
2976 /* Q_UUSH - UPDATE_USER_SHELL */
2977 "update_user_shell",
2982 "users SET shell = '%s'",
2991 /* Q_UUST - UPDATE_USER_STATUS */
2992 "update_user_status",
2997 "users SET status = %s",
3006 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
3007 "update_user_security_status",
3012 "users SET secure = %s",
3021 /* Q_UUDF - UPDATE_USER_DIRECTORY_FLAGS */
3022 "update_user_directory_flags",
3027 "users SET dirsuppress = %s, dirremote = %s",
3036 /* Q_DUSR - DELETE_USER */
3051 /* Q_DUBU - DELETE_USER_BY_UID */
3052 "delete_user_by_uid",
3066 /* Q_GKUM - GET_KERBEROS_USER_MAP */
3067 "get_kerberos_user_map",
3072 "u.login, str.string FROM krbmap km, users u, strings str",
3075 "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",
3081 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3082 "add_kerberos_user_map",
3087 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
3096 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3097 "delete_kerberos_user_map",
3105 "users_id = %d AND string_id = %d",
3111 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3112 "get_finger_by_login",
3117 "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",
3126 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3127 "update_finger_by_login",
3132 "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))",
3141 /* Q_GPOB - GET_POBOX */
3147 "login, potype, pop_id || ':' || box_id, TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
3156 /* Q_GAPO - GET_ALL_POBOXES */
3162 "login, potype, pop_id || ':' || box_id FROM users",
3171 /* Q_GPOP - GET_POBOXES_POP */
3177 "login, potype, pop_id || ':' || box_id FROM users",
3186 /* Q_GPOF - GET_POBOXES_SMTP */
3192 "login, potype, pop_id || ':' || box_id FROM users",
3201 /* Q_SPOB - SET_POBOX */
3216 /* Q_SPOP - SET_POBOX_POP */
3222 "users SET potype = 'POP'",
3231 /* Q_DPOB - DELETE_POBOX */
3237 "users SET potype = 'NONE'",
3246 /* Q_GHST - GET_HOST */
3252 "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",
3255 "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",
3261 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3267 "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)",
3276 /* Q_UHST - UPDATE_HOST */
3282 "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",
3291 /* Q_DHST - DELETE_HOST */
3306 /* Q_GMAC - GET_MACHINE */
3312 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
3315 "name LIKE '%s' ESCAPE '*' AND mach_id != 0",
3321 /* Q_GHAL - GET_HOSTALIAS */
3327 "a.name, m.name FROM hostalias a, machine m",
3330 "m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
3336 /* Q_AHAL - ADD_HOSTALIAS */
3342 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'),%d)",
3351 /* Q_DHAL - DELETE_HOSTALIAS */
3360 "name = UPPER('%s') AND mach_id = %d",
3366 /* Q_GSNT - GET_SUBNET */
3372 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
3375 "name LIKE '%s' ESCAPE '*' and snet_id != 0",
3381 /* Q_ASNT - ADD_SUBNET */
3387 "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)",
3396 /* Q_USNT - UPDATE_SUBNET */
3402 "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",
3411 /* Q_DSNT - DELETE_SUBNET */
3426 /* Q_GCLU - GET_CLUSTER */
3432 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
3435 "name LIKE '%s' ESCAPE '*' AND clu_id != 0",
3441 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
3447 "INTO clusters (name, description, location, clu_id) VALUES ('%s',NVL('%s',CHR(0)),NVL('%s',CHR(0)),%s)",
3456 /* Q_UCLU - UPDATE_CLUSTER */
3462 "clusters SET name = '%s', description = NVL('%s',CHR(0)), location = NVL('%s',CHR(0))",
3471 /* Q_DCLU - DELETE_CLUSTER */
3486 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
3487 "get_machine_to_cluster_map",
3492 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
3495 "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",
3501 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3502 "add_machine_to_cluster",
3507 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
3516 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3517 "delete_machine_from_cluster",
3525 "mach_id = %d AND clu_id = %d",
3531 /* Q_GCLD - GET_CLUSTER_DATA */
3537 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
3540 "c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
3546 /* Q_ACLD - ADD_CLUSTER_DATA */
3552 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d,'%s','%s')",
3561 /* Q_DCLD - DELETE_CLUSTER_DATA */
3562 "delete_cluster_data",
3570 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
3576 /* Q_GLIN - GET_LIST_INFO */
3591 /* Q_EXLN - EXPAND_LIST_NAMES */
3592 "expand_list_names",
3600 "name LIKE '%s' ESCAPE '*' AND list_id != 0",
3606 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
3612 "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)",
3621 /* Q_ULIS - UPDATE_LIST */
3627 "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))",
3636 /* Q_DLIS - DELETE_LIST */
3651 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3652 "add_member_to_list",
3666 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3667 "delete_member_from_list",
3681 /* Q_GAUS - GET_ACE_USE */
3696 /* Q_QGLI - QUALIFIED_GET_LISTS */
3697 "qualified_get_lists",
3711 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3712 "get_members_of_list",
3726 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
3727 "get_end_members_of_list",
3741 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3742 "get_lists_of_member",
3756 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3757 "count_members_of_list",
3771 /* Q_GSIN - GET_SERVER_INFO */
3777 "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",
3780 "name LIKE '%s' ESCAPE '*'",
3786 /* Q_QGSV - QUALIFIED_GET_SERVER */
3787 "qualified_get_server",
3801 /* Q_ASIN - ADD_SERVER_INFO */
3807 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'),%s,'%s','%s','%s',%s,'%s',%d)",
3816 /* Q_USIN - UPDATE_SERVER_INFO */
3817 "update_server_info",
3822 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
3825 "name = UPPER('%s')",
3831 /* Q_RSVE - RESET_SERVER_ERROR */
3832 "reset_server_error",
3837 "servers SET harderror = 0, dfcheck = dfgen",
3840 "name = UPPER('%s')",
3846 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3847 "set_server_internal_flags",
3852 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s',CHR(0))",
3855 "name = UPPER('%s')",
3861 /* Q_DSIN - DELETE_SERVER_INFO */
3862 "delete_server_info",
3870 "name = UPPER('%s')",
3876 /* Q_GSHI - GET_SERVER_HOST_INFO */
3877 "get_server_host_info",
3882 "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",
3885 "sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
3891 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
3892 "qualified_get_server_host",
3906 /* Q_ASHI - ADD_SERVER_HOST_INFO */
3907 "add_server_host_info",
3912 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s',CHR(0)))",
3921 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
3922 "update_server_host_info",
3927 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s',CHR(0))",
3930 "service = UPPER('%s') AND mach_id = %d",
3936 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
3937 "reset_server_host_error",
3942 "serverhosts SET hosterror = 0",
3945 "service = UPPER('%s') AND mach_id = %d",
3951 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
3952 "set_server_host_override",
3957 "serverhosts SET override = 1",
3960 "service = UPPER('%s') AND mach_id = %d",
3966 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
3967 "set_server_host_internal",
3972 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s',CHR(0)), ltt = %s, lts = %s",
3975 "service = UPPER('%s') AND mach_id = %d",
3981 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
3982 "delete_server_host_info",
3990 "service = UPPER('%s') AND mach_id = %d",
3996 /* Q_GSLO - GET_SERVER_LOCATIONS */
3997 "get_server_locations",
4002 "sh.service, m.name FROM serverhosts sh, machine m",
4005 "sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
4011 /* Q_GFSL - GET_FILESYS_BY_LABEL */
4012 "get_filesys_by_label",
4017 "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",
4020 "fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4026 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
4027 "get_filesys_by_machine",
4032 "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",
4035 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4041 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
4042 "get_filesys_by_nfsphys",
4047 "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",
4050 "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'",
4056 /* Q_GFSG - GET_FILESYS_BY_GROUP */
4057 "get_filesys_by_group",
4062 "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",
4065 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4071 /* Q_GFSP - GET_FILESYS_BY_PATH */
4072 "get_filesys_by_path",
4077 "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",
4080 "fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4086 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
4092 "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)",
4101 /* Q_UFIL - UPDATE_FILESYS */
4107 "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'",
4116 /* Q_DFIL - DELETE_FILESYS */
4131 /* Q_GFGM - GET_FSGROUP_MEMBERS */
4132 "get_fsgroup_members",
4137 "fs.label, fg.key FROM fsgroup fg, filesys fs",
4140 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
4146 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
4147 "add_filesys_to_fsgroup",
4152 "INTO fsgroup (group_id,filsys_id,key) VALUES (%d, %d, '%s')",
4161 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
4162 "remove_filesys_from_fsgroup",
4170 "group_id = %d AND filsys_id = %d",
4176 /* Q_GANF - GET_ALL_NFSPHYS */
4182 "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",
4185 "m.mach_id = np.mach_id",
4191 /* Q_GNFP - GET_NFSPHYS */
4197 "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",
4200 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
4206 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
4212 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s',CHR(0)), %s, %s, %s, %s)",
4221 /* Q_UNFP - UPDATE_NFSPHYS */
4227 "nfsphys SET device = NVL('%s',CHR(0)), status = %s, allocated = %s, partsize = %s",
4230 "mach_id = %d AND dir = '%s'",
4236 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
4237 "adjust_nfsphys_allocation",
4242 "nfsphys SET allocated = allocated + %s",
4245 "mach_id = %d AND dir = '%s'",
4251 /* Q_DNFP - DELETE_NFSPHYS */
4260 "mach_id = %d AND dir = '%s'",
4266 /* Q_GQOT - GET_QUOTA */
4272 "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",
4275 "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",
4281 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
4282 "get_quota_by_filesys",
4287 "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",
4290 "fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
4296 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
4302 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
4311 /* Q_UQOT - UPDATE_QUOTA */
4317 "quota SET quota = %s",
4326 /* Q_DQOT - DELETE_QUOTA */
4341 /* Q_GNFQ - GET_NFS_QUOTAS */
4347 "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",
4350 "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'",
4356 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
4357 "get_nfs_quotas_by_partition",
4362 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
4365 "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",
4371 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
4377 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
4386 /* Q_UNFQ - UPDATE_NFS_QUOTA */
4392 "quota SET quota = %s",
4401 /* Q_DNFQ - DELETE_NFS_QUOTA */
4416 /* Q_GZCL - GET_ZEPHYR_CLASS */
4422 "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",
4425 "class LIKE '%s' ESCAPE '*'",
4431 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4437 "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)",
4446 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4447 "update_zephyr_class",
4452 "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",
4461 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4462 "delete_zephyr_class",
4476 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
4477 "get_server_host_access",
4482 "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",
4485 "m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
4491 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
4492 "add_server_host_access",
4497 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d,'%s',%d)",
4506 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
4507 "update_server_host_access",
4512 "hostaccess SET acl_type = '%s', acl_id = %d",
4521 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
4522 "delete_server_host_access",
4536 /* Q_GSVC - GET_SERVICE */
4542 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
4545 "name LIKE '%s' ESCAPE '*'",
4551 /* Q_ASVC - ADD_SERVICE */
4557 "INTO services (name, protocol, port, description) VALUES ('%s','%s',%s,NVL('%s',CHR(0)))",
4566 /* Q_DSVC - DELETE_SERVICE */
4581 /* Q_GPCE - GET_PRINTCAP_ENTRY */
4582 "get_printcap_entry",
4587 "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",
4590 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4596 /* Q_APCE - ADD_PRINTCAP_ENTRY */
4597 "add_printcap_entry",
4602 "INTO printcap (name, mach_id, dir, rp, quotaserver, auth, price, comments) VALUES ('%s',%d,'%s','%s',%d,%s,%s,NVL('%s',CHR(0)))",
4611 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
4612 "delete_printcap_entry",
4626 /* Q_GPCP - GET_PRINTCAP */
4632 "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",
4635 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4641 /* Q_DPCP - DELETE_PRINTCAP */
4656 /* Q_GPDM - GET_PALLADIUM */
4662 "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",
4665 "pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
4671 /* Q_APDM - ADD_PALLADIUM */
4677 "INTO palladium (name, identifier, mach_id) VALUES ('%s',%s,%d)",
4686 /* Q_DPDM - DELETE_PALLADIUM */
4701 /* Q_GALI - GET_ALIAS */
4707 "name, type, trans FROM alias",
4710 "name LIKE '%s' ESCAPE '*' AND type LIKE '%s' ESCAPE '*' AND trans LIKE '%s' ESCAPE '*'",
4716 /* Q_AALI - ADD_ALIAS */
4722 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
4731 /* Q_DALI - DELETE_ALIAS */
4740 "name = '%s' AND type = '%s' AND trans = '%s'",
4746 /* Q_GVAL - GET_VALUE */
4752 "value FROM numvalues",
4761 /* Q_AVAL - ADD_VALUE */
4767 "INTO numvalues (name, value) VALUES ('%s', %s)",
4776 /* Q_UVAL - UPDATE_VALUE */
4782 "numvalues SET value = %s",
4791 /* Q_DVAL - DELETE_VALUE */
4806 /* Q_GATS - GET_ALL_TABLE_STATS */
4807 "get_all_table_stats",
4812 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
4821 /* Q__SDL - _SET_DEBUG_LEVEL */
4837 int QueryCount2 = (sizeof Queries2 / sizeof (struct query));