1 /* This file defines the query dispatch table for version 2 of the protocol
5 * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
6 * For copying and distribution information, please see the file
10 #include <mit-copyright.h>
11 #include "mr_server.h"
18 /* Specialized Support Query Routines */
20 /* Special Access Check Routines */
24 int access_visible_list();
25 int access_vis_list_by_name();
34 /* Query Setup Routines */
36 int prefetch_filesys();
59 /* Query Followup Routines */
60 int followup_fix_modby();
76 int set_modtime_by_id();
77 int set_finger_modtime();
78 int set_pobox_modtime();
79 int set_uppercase_modtime();
80 int set_mach_modtime_by_id();
81 int set_cluster_modtime_by_id();
82 int set_serverhost_modtime();
83 int set_nfsphys_modtime();
84 int set_filesys_modtime();
85 int set_zephyr_modtime();
90 int add_member_to_list();
91 int delete_member_from_list();
93 int qualified_get_lists();
94 int get_members_of_list();
95 int get_end_members_of_list();
96 int qualified_get_server();
97 int qualified_get_serverhost();
99 int count_members_of_list();
100 int get_lists_of_member();
106 /* String compression
107 * These are commonly used strings in the table, defined here so that
108 * they can be shared.
111 static char ACE_NAME[] = "ace_name";
112 static char ACE_TYPE[] = "ace_type";
113 static char ADDRESS[] = "address";
114 static char ALIAS[] = "alias";
115 static char CLASS[] = "class";
116 static char CLU_ID[] = "clu_id";
117 static char CLUSTER[] = "clusters";
118 static char COMMENTS[] = "comments";
119 static char DESC[] = "description";
120 static char DEVICE[] = "device";
121 static char DIR[] = "dir";
122 static char FILESYS[] = "filesys";
123 static char FILSYS_ID[] = "filsys_id";
124 static char FIRST[] = "first";
125 static char HOSTACCESS[] = "hostaccess";
126 static char LABEL[] = "label";
127 static char LAST[] = "last";
128 static char LIST[] = "list";
129 static char LIST_ID[] = "list_id";
130 static char LOCATION[] = "location";
131 static char LOGIN[] = "login";
132 static char MACH_ID[] = "mach_id";
133 static char MACHINE[] = "machine";
134 static char MIDDLE[] = "middle";
135 static char MIT_ID[] = "clearid";
136 static char MOD1[] = "modtime";
137 static char MOD2[] = "modby";
138 static char MOD3[] = "modwith";
139 static char NAME[] = "name";
140 static char PRINTCAP[] = "printcap";
141 static char QUOTA[] = "quota";
142 static char QUOTA_TYPE[] = "quota_type";
143 static char SECURE[] = "secure";
144 static char SERVICE[] = "service";
145 static char SERVERS[] = "servers";
146 static char SHELL[] = "shell";
147 static char SIGNATURE[] = "signature";
148 static char SNET_ID[] = "snet_id";
149 static char SUBNET[] = "subnet";
150 static char STATUS[] = "status";
151 static char TYPE[] = "type";
152 static char USERS[] = "users";
153 static char USERS_ID[] = "users_id";
154 static char UID[] = "unix_uid";
155 static char ZEPH[] = "zephyr";
156 static char ZEPH_ID[] = "xmt_id";
159 char *table_name[] = {
160 "none", USERS, "krbmap", MACHINE, "hostalias", SUBNET, CLUSTER,
161 "mcmap", "svc", LIST, "imembers", SERVERS, "serverhosts", FILESYS,
162 "fsgroup", "nfsphys", "quota", ZEPH, HOSTACCESS, "strings", "services",
163 PRINTCAP, "palladium", "capacls", "alias", "numvalues", "tblstats",
169 * These are commonly used validation objects, defined here so that they
174 * A word about validation objects and locking: The validation object
175 * for a query should also request locks on behalf of the pre-processing
176 * and post-processing routines. This helps to ensure that tables are
177 * accessed and locked in the proper order and thus avoids deadlock
181 static struct valobj VOwild0[] = {
185 static struct valobj VOupwild0[] = {
189 static struct valobj VOwild01[] = {
194 static struct valobj VOwild012[] = {
201 static struct valobj VOuser0[] = {
202 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
206 static struct valobj VOuser0lock[] = {
207 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
208 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
211 static struct valobj VOmach0[] = {
212 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
215 static struct valobj VOclu0[] = {
216 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
219 static struct valobj VOlist0[] = {
220 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
224 static struct valobj VOchar0[] = {
230 static struct valobj VOfilsys0user1[] = {
231 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
232 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
233 {V_ID, 1, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
238 * Commonly used validation records defined here so that they may
242 static struct validate VDmach = { VOmach0, 1 };
243 static struct validate VDwild0= { VOwild0, 1 };
244 static struct validate VDupwild0= { VOupwild0, 1 };
245 static struct validate VDwild2 = { VOwild01,2 };
246 static struct validate VDwild3 = { VOwild012,3 };
247 static struct validate VDfixmodby = {
259 static struct validate VDwildfixmodby = {
271 static struct validate VDupwildfixmodby = {
285 static char *galo_fields[] = {
286 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE,
289 static char *gual_fields[] = {
291 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
292 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
295 static char *gubl_fields[] = {
297 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
298 MIT_ID, CLASS, MOD1, MOD2, MOD3,
301 static struct validate gubl_validate =
314 static char *guau_fields[] = {
316 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
317 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
320 static char *guan_fields[] = {
322 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
323 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
326 static struct validate guan_validate =
339 static char *guac_fields[] = {
341 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
342 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
345 static char *guam_fields[] = {
347 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
348 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
351 static char *gubu_fields[] = {
353 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
354 MIT_ID, CLASS, MOD1, MOD2, MOD3,
357 static struct validate gubu_validate =
370 static char *gubn_fields[] = {
372 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
373 MIT_ID, CLASS, MOD1, MOD2, MOD3,
376 static struct validate gubn_validate =
389 static char *gubc_fields[] = {
391 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
392 MIT_ID, CLASS, MOD1, MOD2, MOD3,
395 static char *gubm_fields[] = {
397 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
398 MIT_ID, CLASS, MOD1, MOD2, MOD3,
401 static char *gudf_fields[] = {
403 "dirsuppress", "dirremote"
406 static struct validate gudf_validate =
419 static char *auac_fields[] = {
420 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
421 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
424 static struct valobj auac_valobj[] = {
425 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
426 {V_CHAR, 0, USERS_TABLE, LOGIN},
427 {V_CHAR, 2, USERS_TABLE, SHELL},
428 {V_CHAR, 3, USERS_TABLE, LAST},
429 {V_CHAR, 4, USERS_TABLE, FIRST},
430 {V_CHAR, 5, USERS_TABLE, MIDDLE},
431 {V_CHAR, 7, USERS_TABLE, MIT_ID},
432 {V_TYPE, 8, 0, CLASS, 0, MR_BAD_CLASS},
433 {V_ID, 9, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
436 static struct validate auac_validate = {
448 static struct validate ausr_validate = {
460 static char *rusr_fields[] = {
461 UID, LOGIN, "fs_type"
464 static struct valobj rusr_valobj[] = {
465 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
466 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
467 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
468 {V_RLOCK, 0, MACHINE_TABLE, 0,MACH_ID, MR_DEADLOCK},
469 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
470 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
471 {V_LOCK, 0, QUOTA_TABLE,0, FILSYS_ID, MR_DEADLOCK},
472 {V_RLOCK,0, SERVERHOSTS_TABLE,0, MACH_ID, MR_DEADLOCK},
475 static struct validate rusr_validate = {
487 static char *uuac_fields[] = {
489 "newlogin", UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
490 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
493 static struct valobj uuac_valobj[] = {
494 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
495 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
496 {V_RENAME, 1, USERS_TABLE, LOGIN, USERS_ID, MR_NOT_UNIQUE},
497 {V_CHAR, 3, USERS_TABLE, SHELL},
498 {V_CHAR, 4, USERS_TABLE, FIRST},
499 {V_CHAR, 5, USERS_TABLE, LAST},
500 {V_CHAR, 6, USERS_TABLE, MIDDLE},
501 {V_CHAR, 8, USERS_TABLE, MIT_ID},
502 {V_TYPE, 9, 0, CLASS, 0, MR_BAD_CLASS},
503 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
506 static struct validate uuac_validate = {
518 static struct validate uusr_validate = {
530 static char *uush_fields[] = {
535 static struct valobj uush_valobj[] = {
536 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
537 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
538 {V_CHAR, 1, USERS_TABLE, SHELL},
541 static struct validate uush_validate = {
553 static char *uust_fields[] = {
558 static char *uuss_fields[] = {
563 static struct validate uust_validate = {
575 static char *uudf_fields[] = {
577 "dirsuppress", "dirremote"
580 static struct validate uudf_validate = {
592 static char *dusr_fields[] = {
596 struct valobj dusr_valobj[]= {
597 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
598 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
599 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
600 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
601 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
602 {V_LOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
603 {V_LOCK, 0, KRBMAP_TABLE, 0, "users_id", MR_DEADLOCK},
604 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
607 static struct validate dusr_validate = {
619 static char *dubu_fields[] = {
623 static struct valobj dubu_valobj[] = {
624 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
625 {V_ID, 0, USERS_TABLE, UID, USERS_ID, MR_USER}
628 static struct validate dubu_validate = {
640 static char *gkum_fields[] = { LOGIN, "kerberos",
643 static char *akum_fields[] = { LOGIN, "kerberos" };
645 static struct valobj akum_valobj[] =
647 {V_LOCK, 0, KRBMAP_TABLE, 0, "users_id", MR_DEADLOCK},
648 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
649 {V_ID, 1, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
653 static struct validate akum_validate =
658 "users_id = %d or string_id = %d",
666 static struct validate dkum_validate =
671 "users_id = %d and string_id = %d",
679 static char *gfbl_fields[] = {
681 LOGIN, "fullname", "nickname", "home_addr",
682 "home_phone", "office_addr", "office_phone", "department",
683 "affiliation", MOD1, MOD2, MOD3,
686 static struct validate gfbl_validate = {
698 static char *ufbl_fields[] = {
700 "fullname", "nickname", "home_addr",
701 "home_phone", "office_addr", "office_phone", "department",
705 static struct valobj ufbl_valobj[] = {
706 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
707 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
708 {V_LEN, 1, USERS_TABLE, "fullname"},
709 {V_LEN, 2, USERS_TABLE, "nickname"},
710 {V_LEN, 3, USERS_TABLE, "home_addr"},
711 {V_LEN, 4, USERS_TABLE, "home_phone"},
712 {V_LEN, 5, USERS_TABLE, "office_addr"},
713 {V_LEN, 6, USERS_TABLE, "office_phone"},
714 {V_LEN, 7, USERS_TABLE, "department"},
715 {V_LEN, 8, USERS_TABLE, "affiliation"},
718 static struct validate ufbl_validate = {
730 static char *gpob_fields[] = {
732 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
735 static struct validate gpob_validate = {
739 "potype != 'NONE' and users_id=%d",
747 static char *gpox_fields[] = {
751 struct valobj gpox_valobj[]={
752 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
753 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK}
756 static struct validate gpox_validate = {
768 static char *spob_fields[] = {
772 static struct valobj spob_valobj[] = {
773 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
774 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
775 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
776 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
779 static struct validate spob_validate = /* SET_POBOX */
792 struct valobj spop_valobj[] = {
793 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
794 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
795 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
798 static struct validate spop_validate = /* SET_POBOX_POP */
811 static struct validate dpob_validate = /* DELETE_POBOX */
824 static char *gmac_fields[] = {
826 NAME, TYPE, MOD1, MOD2, MOD3,
829 static char *ghst_fields[] = {
830 NAME, ADDRESS, "location", "network",
831 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,
834 static struct valobj ghst_valobj[] = {
841 static struct validate ghst_validate = {
853 static char *ahst_fields[] = {
854 NAME, "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
857 static struct valobj ahst_valobj[] = {
858 {V_CHAR, 0, MACHINE_TABLE, NAME},
859 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
860 {V_CHAR, 2, MACHINE_TABLE, "model"},
861 {V_CHAR, 3, MACHINE_TABLE, "os"},
862 {V_CHAR, 4, MACHINE_TABLE, "location"},
863 {V_CHAR, 5, MACHINE_TABLE, "contact"},
864 {V_RLOCK,0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
865 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
866 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
867 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
868 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
869 {V_ID, 8, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
870 {V_TYPE, 10, 0, ACE_TYPE, 0, MR_ACE},
871 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
872 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
873 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
876 static struct validate ahst_validate = {
880 "name = UPPER('%s')",
885 set_uppercase_modtime,
888 static char *uhst_fields[] = {
890 "newname", "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
893 static struct valobj uhst_valobj[] = {
894 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
895 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
896 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
897 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
898 {V_CHAR, 0, MACHINE_TABLE, "name"},
899 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
900 {V_RENAME, 1, MACHINE_TABLE, NAME, MACH_ID, MR_NOT_UNIQUE},
901 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
902 {V_CHAR, 3, MACHINE_TABLE, "model"},
903 {V_CHAR, 4, MACHINE_TABLE, "os"},
904 {V_CHAR, 5, MACHINE_TABLE, "location"},
905 {V_ID, 9, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
906 {V_TYPE, 11, 0, ACE_TYPE, 0, MR_ACE},
907 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
908 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
909 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
912 static struct validate uhst_validate = {
924 static char *dhst_fields[] = {
928 static struct valobj dhst_valobj[] = {
929 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
930 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
931 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
932 {V_RLOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
933 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
934 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
935 {V_LOCK, 0, MCMAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
936 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
937 {V_RLOCK, 0, PALLADIUM_TABLE, 0, MACH_ID, MR_DEADLOCK},
938 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
941 static struct validate dhst_validate = {
953 static char *ghal_fields[] = {
954 ALIAS, "canonical_hostname",
955 ALIAS, "canonical_hostname"
958 static struct valobj ghal_valobj[] = {
963 static struct validate ghal_validate = {
975 static struct valobj ahal_valobj[] = {
976 {V_CHAR, 0, HOSTALIAS_TABLE, NAME},
978 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
981 static struct validate ahal_validate = {
993 static struct valobj dhal_valobj[] = {
995 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
996 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
999 static struct validate dhal_validate = {
1003 "name = '%s' AND mach_id = %d",
1011 static char *gsnt_fields[] = {
1013 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1017 static struct valobj gsnt_valobj[] = {
1018 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1019 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1020 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1024 static struct validate gsnt_validate = {
1036 static char *asnt_fields[] = {
1037 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1040 static struct valobj asnt_valobj[] = {
1041 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1042 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1043 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1044 {V_CHAR, 0, SUBNET_TABLE, NAME},
1045 {V_LEN, 1, SUBNET_TABLE, DESC},
1046 {V_LEN, 6, SUBNET_TABLE, "prefix"},
1047 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1048 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
1051 static struct validate asnt_validate =
1056 "name = UPPER('%s')",
1061 set_uppercase_modtime,
1064 static char *usnt_fields[] = {
1066 "newname", DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1069 static struct valobj usnt_valobj[] = {
1070 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1071 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1072 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1073 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_NO_MATCH},
1074 {V_RENAME, 1, SUBNET_TABLE, NAME, SNET_ID, MR_NOT_UNIQUE},
1075 {V_LEN, 2, SUBNET_TABLE, DESC},
1076 {V_LEN, 7, SUBNET_TABLE, "prefix"},
1077 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
1078 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
1081 static struct validate usnt_validate =
1094 static char *dsnt_fields[] = {
1098 static struct valobj dsnt_valobj[] = {
1099 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1100 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1101 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
1104 static struct validate dsnt_validate = {
1116 static char *gclu_fields[] = {
1118 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
1121 static char *aclu_fields[] = {
1122 NAME, DESC, LOCATION,
1125 static struct valobj aclu_valobj[] = {
1126 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1127 {V_CHAR, 0, CLUSTER_TABLE, NAME},
1128 {V_LEN, 1, CLUSTER_TABLE, DESC},
1129 {V_LEN, 2, CLUSTER_TABLE, LOCATION},
1132 static struct validate aclu_validate =
1145 static char *uclu_fields[] = {
1147 "newname", DESC, LOCATION,
1150 static struct valobj uclu_valobj[] = {
1151 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1152 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1153 {V_RENAME, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_NOT_UNIQUE},
1154 {V_LEN, 2, CLUSTER_TABLE, DESC},
1155 {V_LEN, 3, CLUSTER_TABLE, LOCATION},
1158 static struct validate uclu_validate = {
1170 static char *dclu_fields[] = {
1174 static struct validate dclu_validate = {
1186 static char *gmcm_fields[] = {
1191 static struct valobj gmcm_valobj[] =
1197 static struct validate gmcm_validate = { gmcm_valobj, 2 };
1199 static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1200 { /* DELETE_MACHINE_FROM_CLUSTER */
1201 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1202 {V_ID, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1205 static struct validate amtc_validate = /* for amtc and dmfc */
1210 "mach_id = %d and clu_id = %d",
1215 set_mach_modtime_by_id,
1218 static char *gcld_fields[] = {
1219 CLUSTER, "serv_label",
1220 CLUSTER, "serv_label", "serv_cluster",
1223 static char *acld_fields[] = {
1224 CLUSTER, "serv_label", "serv_cluster",
1227 static struct valobj acld_valobj[] =
1229 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1230 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1231 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
1234 static struct validate acld_validate =
1239 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1244 set_cluster_modtime_by_id,
1247 static struct valobj dcld_valobj[] =
1249 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1252 static struct validate dcld_validate =
1257 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1262 set_cluster_modtime_by_id,
1265 static char *glin_fields[] = {
1267 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1268 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
1271 static struct validate glin_validate = {
1278 access_vis_list_by_name,
1283 static char *alis_fields[] = {
1284 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1285 ACE_TYPE, ACE_NAME, DESC,
1288 static struct valobj alis_valobj[] = {
1289 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1290 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1291 {V_CHAR, 0, LIST_TABLE, NAME},
1292 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1293 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
1294 {V_LEN, 9, LIST_TABLE, DESC},
1297 static struct validate alis_validate = {
1309 static char *ulis_fields[] = {
1311 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1312 ACE_TYPE, ACE_NAME, DESC,
1315 static struct valobj ulis_valobj[] = {
1316 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1317 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1318 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1319 {V_RENAME, 1, LIST_TABLE, NAME, LIST_ID, MR_NOT_UNIQUE},
1320 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
1321 {V_CHAR, 1, LIST_TABLE, NAME},
1322 {V_LEN, 10, LIST_TABLE, DESC},
1325 static struct validate ulis_validate = {
1337 static char *dlis_fields[] = {
1341 static struct valobj dlis_valobj[] ={
1342 {V_RLOCK, 0, CAPACLS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1343 {V_RLOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1344 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1345 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1346 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1347 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1348 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1349 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1352 static struct validate dlis_validate = {
1364 static char *amtl_fields[] = {
1365 "list_name", "member_type", "member_name",
1368 static struct valobj amtl_valobj[] = {
1369 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1370 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1371 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1372 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1373 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
1376 static struct validate amtl_validate =
1389 static struct validate dmfl_validate =
1399 delete_member_from_list,
1402 static char *gaus_fields[] = {
1404 "use_type", "use_name",
1407 static struct valobj gaus_valobj[] = {
1408 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1409 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1410 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1411 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1412 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1413 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1414 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1417 static struct validate gaus_validate = {
1429 static char *qgli_fields[] = {
1430 "active", "publicflg", "hidden", "maillist", "grouplist",
1434 static struct valobj qgli_valobj[] = {
1435 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1436 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1437 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1438 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1439 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1442 static struct validate qgli_validate = {
1451 qualified_get_lists,
1454 static char *gmol_fields[] = {
1456 "member_type", "member_name",
1459 static struct valobj gmol_valobj[]={
1460 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1461 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1462 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1465 static struct validate gmol_validate = {
1472 access_visible_list,
1474 get_members_of_list,
1477 static struct validate geml_validate = {
1484 access_visible_list,
1486 get_end_members_of_list,
1489 static char *glom_fields[] = {
1490 "member_type", "member_name",
1491 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
1494 static struct valobj glom_valobj[] = {
1495 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1496 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1497 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1498 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1499 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1502 static struct validate glom_validate = {
1511 get_lists_of_member,
1514 static char *cmol_fields[] = {
1519 static struct validate cmol_validate = {
1526 access_visible_list,
1528 count_members_of_list,
1531 static char *gsin_fields[] = {
1533 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
1534 TYPE, "enable", "inprogress", "harderror", "errmsg",
1535 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
1538 static struct valobj gsin_valobj[] =
1540 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1541 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1545 static struct validate gsin_validate =
1558 static char *qgsv_fields[] = {
1559 "enable", "inprogress", "harderror",
1563 static struct valobj qgsv_valobj[] = {
1564 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1565 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1566 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1569 static struct validate qgsv_validate = {
1578 qualified_get_server,
1581 static char *asin_fields[] = {
1582 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
1586 static struct valobj asin_valobj[] = {
1587 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1588 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1589 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1590 {V_CHAR, 0, SERVERS_TABLE, NAME},
1591 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1592 {V_LEN, 3, SERVERS_TABLE, "script"},
1593 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
1594 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
1595 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
1598 static struct validate asin_validate = /* for asin, usin */
1603 "name = UPPER('%s')",
1608 set_uppercase_modtime,
1611 static struct validate rsve_validate = {
1615 "name = UPPER('%s')",
1620 set_uppercase_modtime,
1623 static char *ssif_fields[] = {
1624 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
1627 static struct valobj ssif_valobj[] = {
1628 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1629 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1630 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1631 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1634 static struct validate ssif_validate = {
1638 "name = UPPER('%s')",
1646 static char *dsin_fields[] = {
1650 static struct validate dsin_validate = {
1654 "name = UPPER('%s')",
1662 static char *gshi_fields[] = {
1664 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
1665 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
1666 "value3", MOD1, MOD2, MOD3,
1669 static struct valobj gshi_valobj[] = {
1674 static struct validate gshi_validate = {
1686 static char *qgsh_fields[] = {
1687 "service", "enable", "override", "success", "inprogress", "hosterror",
1691 static struct valobj qgsh_valobj[] = {
1692 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1693 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1694 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1695 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1696 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
1699 static struct validate qgsh_validate = {
1708 qualified_get_serverhost,
1711 static char *ashi_fields[] = {
1712 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
1715 static struct valobj ashi_valobj[] = {
1716 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1717 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1718 {V_LOCK, 0, SERVERHOSTS_TABLE,0, MACH_ID, MR_DEADLOCK},
1719 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1720 {V_CHAR, 0, SERVERHOSTS_TABLE, NAME},
1721 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
1724 static struct validate ashi_validate = /* ashi & ushi */
1729 "service = UPPER('%s') AND mach_id = %d",
1734 set_serverhost_modtime,
1737 static struct validate rshe_validate =
1742 "service = UPPER('%s') AND mach_id = %d",
1747 set_serverhost_modtime,
1750 static struct validate ssho_validate =
1755 "service = UPPER('%s') AND mach_id = %d",
1763 static char *sshi_fields[] = {
1764 "service", MACHINE, "override", "success", "inprogress",
1765 "hosterror", "errmsg", "ltt", "lts",
1768 static struct valobj sshi_valobj[] = {
1769 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1770 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1771 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE}, /** Was this ok to add? */
1772 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1775 static struct validate sshi_validate =
1788 static char *dshi_fields[] = {
1792 static struct validate dshi_validate =
1797 "service = UPPER('%s') AND mach_id = %d",
1805 static char *gslo_fields[] = {
1810 static char *gfsl_fields[] = {
1812 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1813 "create", "lockertype", MOD1, MOD2, MOD3,
1816 static char *gfsm_fields[] = {
1818 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1819 "create", "lockertype", MOD1, MOD2, MOD3,
1822 static struct valobj gfsm_valobj[] = {
1823 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1824 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1827 static struct validate gfsm_validate = {
1839 static char *gfsn_fields[] = {
1840 MACHINE, "parition",
1841 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1842 "create", "lockertype", MOD1, MOD2, MOD3,
1845 static struct valobj gfsn_valobj[] =
1847 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1848 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1852 static struct validate gfsn_validate = {
1864 static char *gfsp_fields[] = {
1866 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1867 "create", "lockertype", MOD1, MOD2, MOD3,
1870 static char *gfsg_fields[] = {
1872 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1873 "create", "lockertype", MOD1, MOD2, MOD3,
1876 static struct valobj gfsg_valobj[] = {
1877 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1878 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1881 static struct validate gfsg_validate = {
1893 static char *afil_fields[] = {
1894 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1895 "create", "lockertype",
1898 static struct valobj afil_valobj[] = {
1899 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1900 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1901 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1902 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1903 {V_CHAR, 0, FILESYS_TABLE, LABEL},
1904 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
1905 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1906 {V_CHAR, 3, FILESYS_TABLE, NAME},
1907 {V_LEN, 4, FILESYS_TABLE, "mount"},
1908 {V_LEN, 6, FILESYS_TABLE, COMMENTS},
1909 {V_ID, 7, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1910 {V_ID, 8, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1911 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
1914 static struct validate afil_validate = {
1923 set_filesys_modtime,
1926 static char *ufil_fields[] = {
1927 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", COMMENTS,
1928 "owner", "owners", "create", "lockertype",
1931 static struct valobj ufil_valobj[] = {
1932 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1933 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1934 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1935 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1936 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1937 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1938 {V_RENAME, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
1939 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
1940 {V_ID, 3, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1941 {V_CHAR, 4, FILESYS_TABLE, NAME},
1942 {V_LEN, 5, FILESYS_TABLE, "mount"},
1943 {V_LEN, 7, FILESYS_TABLE, COMMENTS},
1944 {V_ID, 8, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1945 {V_ID, 9, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1946 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
1949 static struct validate ufil_validate = {
1958 set_filesys_modtime,
1961 static char *dfil_fields[] = {
1965 static struct valobj dfil_valobj[] = {
1966 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1967 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
1968 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1969 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
1970 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1973 static struct validate dfil_validate = {
1985 static char *gfgm_fields[] = {
1986 "fsgroup", FILESYS, "sortkey"
1989 static struct valobj gfgm_valobj[] = {
1990 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1993 static struct validate gfgm_validate = {
2005 static struct valobj aftg_valobj[] = {
2006 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2007 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
2008 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2009 {V_ID, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2012 static struct validate aftg_validate = {
2016 "group_id = %d and filsys_id = %d",
2024 static char *ganf_fields[] = {
2025 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2028 static char *gnfp_fields[] = {
2030 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2033 static struct valobj gnfp_valobj[] = {
2034 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2035 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2039 static struct validate gnfp_validate = {
2051 static struct valobj anfp_valobj[] = {
2052 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2053 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2054 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2055 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2056 {V_LEN, 2, NFSPHYS_TABLE, "device"},
2059 static struct validate anfp_validate = {
2063 "mach_id = %d and dir = '%s'",
2068 set_nfsphys_modtime,
2071 static struct validate unfp_validate = {
2075 "mach_id = %d and dir = '%s'",
2080 set_nfsphys_modtime,
2083 static char *ajnf_fields[] = {
2084 MACHINE, DIR, "adjustment",
2087 static char *dnfp_fields[] = {
2091 static struct valobj dnfp_valobj[] = {
2092 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2093 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2094 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2095 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2099 static struct validate dnfp_validate = {
2103 "mach_id = %d and dir = '%s'",
2108 set_nfsphys_modtime,
2111 static char *gqot_fields[] = {
2112 FILESYS, TYPE, NAME,
2113 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2116 static struct valobj gqot_valobj[] = {
2117 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2118 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2119 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2120 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2121 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2123 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2124 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2127 static struct validate gqot_validate = {
2139 static char *gqbf_fields[] = {
2141 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2144 static struct validate gqbf_validate = {
2156 static char *aqot_fields[] = {
2157 FILESYS, TYPE, NAME, QUOTA,
2160 static struct valobj aqot_valobj[] = {
2161 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2162 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2163 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2164 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2165 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2166 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2167 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2168 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2171 static struct validate aqot_validate = {
2175 "filsys_id = %d and type = '%s' and entity_id = %d",
2183 static struct validate uqot_validate = {
2187 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2195 static struct validate dqot_validate = {
2199 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2207 static char *gnfq_fields[] = {
2209 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2212 static struct validate gnfq_validate = {
2224 static char *gnqp_fields[] = {
2226 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2229 static struct valobj gnqp_valobj[] = {
2230 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2234 static struct validate gnqp_validate = { gnqp_valobj, 2, };
2236 static char *anfq_fields[] = {
2237 FILESYS, LOGIN, QUOTA,
2240 static struct validate anfq_validate = {
2244 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2252 static struct validate unfq_validate = {
2256 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2264 static struct validate dnfq_validate = {
2268 "filsys_id = %d AND entity_id = %d",
2276 static char *gzcl_fields[] = {
2278 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2279 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
2282 static struct valobj gzcl_valobj[] = {
2283 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2284 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2285 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2288 static struct validate gzcl_validate = {
2300 static char *azcl_fields[] = {
2301 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2302 "iws_type", "iws_name", "iui_type", "iui_name",
2305 static struct valobj azcl_valobj[] = {
2306 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2307 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2308 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2309 {V_CHAR, 0, ZEPHYR_TABLE, CLASS},
2310 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2311 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
2312 {V_TYPE, 3, 0, ACE_TYPE, 0, MR_ACE},
2313 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
2314 {V_TYPE, 5, 0, ACE_TYPE, 0, MR_ACE},
2315 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
2316 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
2317 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
2320 static struct validate azcl_validate = {
2332 static char *uzcl_fields[] = {
2333 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2334 "iws_type", "iws_name", "iui_type", "iui_name",
2337 static struct valobj uzcl_valobj[] = {
2338 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2339 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2340 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2341 {V_RENAME, 1, ZEPHYR_TABLE, CLASS, 0, MR_NOT_UNIQUE},
2342 {V_TYPE, 2, 0, ACE_TYPE, 0, MR_ACE},
2343 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
2344 {V_TYPE, 4, 0, ACE_TYPE, 0, MR_ACE},
2345 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
2346 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
2347 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
2348 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
2349 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
2352 static struct validate uzcl_validate = {
2364 static struct validate dzcl_validate = {
2376 static char *gsha_fields[] = {
2378 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
2381 static struct validate gsha_validate =
2394 static char *asha_fields[] = {
2395 MACHINE, ACE_TYPE, ACE_NAME,
2398 static struct valobj asha_valobj[] = {
2399 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2400 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2401 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2402 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2403 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2406 static struct validate asha_validate =
2419 static char *gsvc_fields[] = {
2421 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3,
2424 static char *asvc_fields[] = {
2425 SERVICE, "protocol", "port", DESC,
2428 static struct valobj asvc_valobj[] = {
2429 {V_CHAR, 0, SERVICES_TABLE, NAME},
2430 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
2431 {V_CHAR, 3, SERVICES_TABLE, DESC},
2434 static struct validate asvc_validate = {
2446 static char *gpce_fields[] = {
2448 "printer", "spooling_host", "spool_directory", "rprinter",
2449 "quotaserver", "authenticate", "price", COMMENTS,
2453 static struct valobj gpce_valobj[]={
2454 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2455 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2456 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
2460 static struct validate gpce_validate = {
2472 static char *apce_fields[] = {
2473 "printer", "spooling_host", "spool_directory", "rprinter",
2474 "quotaserver", "authenticate", "price", COMMENTS,
2478 static struct valobj apce_valobj[] = {
2479 {V_CHAR, 0, PRINTCAP_TABLE, NAME},
2480 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2481 {V_LEN, 2, PRINTCAP_TABLE, "dir"},
2482 {V_LEN, 3, PRINTCAP_TABLE, "rp"},
2483 {V_ID, 4, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2484 {V_CHAR, 7, PRINTCAP_TABLE, "comments"},
2487 static struct validate apce_validate = {
2499 static struct validate dpce_validate = {
2511 static char *gpcp_fields[] = {
2513 "printer", "spooling_host", "spool_directory", "rprinter", COMMENTS,
2517 static char *gpdm_fields[] = {
2519 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
2522 static char *apdm_fields[] = {
2523 NAME, "rpcnum", "host"
2526 static struct valobj apdm_valobj[] = {
2527 {V_CHAR, 0, PALLADIUM_TABLE, NAME},
2528 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2531 static struct validate apdm_validate = {
2543 static struct validate dpdm_validate = {
2555 static char *gali_fields[] = {
2556 NAME, TYPE, "trans",
2557 NAME, TYPE, "trans",
2560 static char *aali_fields[] = {
2561 NAME, TYPE, "trans",
2564 static struct valobj aali_valobj[] = {
2565 {V_CHAR, 0, ALIAS_TABLE, NAME},
2566 {V_TYPE, 1, 0, ALIAS, 0, MR_TYPE},
2567 {V_CHAR, 2, ALIAS_TABLE, "trans"},
2570 static struct validate aali_validate = {
2574 "name = '%s' and type = '%s' and trans = '%s'",
2582 static struct validate dali_validate = /* DELETE_ALIAS */
2587 "name = '%s' and type = '%s' and trans = '%s'",
2595 static char *gval_fields[] = {
2599 static struct valobj gval_valobj[] = {
2600 {V_NAME, 0, NUMVALUES_TABLE, NAME, 0, MR_NO_MATCH},
2603 static struct validate gval_validate = {
2615 static char *aval_fields[] = {
2619 static struct valobj aval_valobj[] = {
2620 {V_CHAR, 0, NUMVALUES_TABLE, NAME},
2623 static struct validate aval_validate = /* for aval, uval, and dval */
2636 static char *dval_fields[] = {
2640 static char *gats_fields[] = {
2641 "table_name", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
2644 static char *_sdl_fields[] = {
2648 static struct validate _sdl_validate =
2663 /* Generalized Query Definitions */
2665 /* Note: For any query which uses prefetch_value, the vcnt should be
2666 * one less than the number of %-format specifiers in the tlist.
2669 struct query Queries2[] = {
2671 /* Q_GALO - GET_ALL_LOGINS */
2677 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2687 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2688 "get_all_active_logins",
2693 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2703 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2704 "get_user_account_by_login",
2709 "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",
2712 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2719 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2720 "get_user_account_by_uid",
2725 "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",
2728 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
2735 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2736 "get_user_account_by_name",
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.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comments = str.string_id",
2751 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2752 "get_user_account_by_class",
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.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
2767 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2768 "get_user_account_by_id",
2773 "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",
2776 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2783 /* Q_GUBL - GET_USER_BY_LOGIN */
2784 "get_user_by_login",
2789 "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",
2792 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2799 /* Q_GUBU - GET_USER_BY_UID */
2805 "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",
2808 "u.unix_uid = %s AND u.users_id != 0",
2815 /* Q_GUBN - GET_USER_BY_NAME */
2821 "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",
2824 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2831 /* Q_GUBC - GET_USER_BY_CLASS */
2832 "get_user_by_class",
2837 "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",
2840 "u.type = UPPER('%s') AND u.users_id != 0",
2847 /* Q_GUBM - GET_USER_BY_MITID */
2848 "get_user_by_mitid",
2853 "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",
2856 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2863 /* Q_GUDF - GET_USER_DIRECTORY_FLAGS */
2864 "get_user_directory_flags",
2869 "u.dirsuppress, u.dirremote FROM users u",
2879 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2885 "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 */
2895 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
2901 "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)",
2911 /* Q_RUSR - REGISTER_USER */
2927 /* Q_UUAC - UPDATE_USER_ACCOUNT */
2928 "update_user_account",
2933 "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 */
2943 /* Q_UUSR - UPDATE_USER */
2949 "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'",
2959 /* Q_UUSH - UPDATE_USER_SHELL */
2960 "update_user_shell",
2965 "users SET shell = '%s'",
2975 /* Q_UUST - UPDATE_USER_STATUS */
2976 "update_user_status",
2981 "users SET status = %s",
2991 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
2992 "update_user_security_status",
2997 "users SET secure = %s",
3007 /* Q_UUDF - UPDATE_USER_DIRECTORY_FLAGS */
3008 "update_user_directory_flags",
3013 "users SET dirsuppress = %s, dirremote = %s",
3023 /* Q_DUSR - DELETE_USER */
3039 /* Q_DUBU - DELETE_USER_BY_UID */
3040 "delete_user_by_uid",
3055 /* Q_GKUM - GET_KERBEROS_USER_MAP */
3056 "get_kerberos_user_map",
3061 "u.login, str.string FROM krbmap km, users u, strings str",
3064 "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",
3071 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3072 "add_kerberos_user_map",
3077 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
3087 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3088 "delete_kerberos_user_map",
3096 "users_id = %d AND string_id = %d",
3103 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3104 "get_finger_by_login",
3109 "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",
3119 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3120 "update_finger_by_login",
3125 "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))",
3135 /* Q_GPOB - GET_POBOX */
3141 "login, potype, pop_id || ':' || box_id, TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
3151 /* Q_GAPO - GET_ALL_POBOXES */
3157 "login, potype, pop_id || ':' || box_id FROM users",
3167 /* Q_GPOP - GET_POBOXES_POP */
3173 "login, potype, pop_id || ':' || box_id FROM users",
3183 /* Q_GPOF - GET_POBOXES_SMTP */
3189 "login, potype, pop_id || ':' || box_id FROM users",
3199 /* Q_SPOB - SET_POBOX */
3215 /* Q_SPOP - SET_POBOX_POP */
3221 "users SET potype = 'POP'",
3231 /* Q_DPOB - DELETE_POBOX */
3237 "users SET potype = 'NONE'",
3247 /* Q_GHST - GET_HOST */
3253 "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",
3256 "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",
3263 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3269 "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)",
3279 /* Q_UHST - UPDATE_HOST */
3285 "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",
3295 /* Q_DHST - DELETE_HOST */
3311 /* Q_GMAC - GET_MACHINE */
3317 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
3320 "name LIKE '%s' ESCAPE '*' AND mach_id != 0",
3327 /* Q_GHAL - GET_HOSTALIAS */
3333 "a.name, m.name FROM hostalias a, machine m",
3336 "m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
3343 /* Q_AHAL - ADD_HOSTALIAS */
3349 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'),%d)",
3359 /* Q_DHAL - DELETE_HOSTALIAS */
3368 "name = UPPER('%s') AND mach_id = %d",
3375 /* Q_GSNT - GET_SUBNET */
3381 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
3384 "name LIKE '%s' ESCAPE '*' and snet_id != 0",
3391 /* Q_ASNT - ADD_SUBNET */
3397 "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)",
3407 /* Q_USNT - UPDATE_SUBNET */
3413 "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",
3423 /* Q_DSNT - DELETE_SUBNET */
3439 /* Q_GCLU - GET_CLUSTER */
3445 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
3448 "name LIKE '%s' ESCAPE '*' AND clu_id != 0",
3455 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
3461 "INTO clusters (name, description, location, clu_id) VALUES ('%s',NVL('%s',CHR(0)),NVL('%s',CHR(0)),%s)",
3471 /* Q_UCLU - UPDATE_CLUSTER */
3477 "clusters SET name = '%s', description = NVL('%s',CHR(0)), location = NVL('%s',CHR(0))",
3487 /* Q_DCLU - DELETE_CLUSTER */
3503 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
3504 "get_machine_to_cluster_map",
3509 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
3512 "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",
3519 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3520 "add_machine_to_cluster",
3525 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
3535 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3536 "delete_machine_from_cluster",
3544 "mach_id = %d AND clu_id = %d",
3551 /* Q_GCLD - GET_CLUSTER_DATA */
3557 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
3560 "c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
3562 "c.name, svc.serv_label, svc.serv_cluster",
3567 /* Q_ACLD - ADD_CLUSTER_DATA */
3573 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d,'%s','%s')",
3583 /* Q_DCLD - DELETE_CLUSTER_DATA */
3584 "delete_cluster_data",
3592 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
3599 /* Q_GLIN - GET_LIST_INFO */
3615 /* Q_EXLN - EXPAND_LIST_NAMES */
3616 "expand_list_names",
3624 "name LIKE '%s' ESCAPE '*' AND list_id != 0",
3631 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
3637 "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)",
3647 /* Q_ULIS - UPDATE_LIST */
3653 "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))",
3663 /* Q_DLIS - DELETE_LIST */
3679 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3680 "add_member_to_list",
3695 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3696 "delete_member_from_list",
3711 /* Q_GAUS - GET_ACE_USE */
3727 /* Q_QGLI - QUALIFIED_GET_LISTS */
3728 "qualified_get_lists",
3743 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3744 "get_members_of_list",
3759 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
3760 "get_end_members_of_list",
3775 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3776 "get_lists_of_member",
3791 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3792 "count_members_of_list",
3807 /* Q_GSIN - GET_SERVER_INFO */
3813 "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",
3816 "name LIKE '%s' ESCAPE '*'",
3823 /* Q_QGSV - QUALIFIED_GET_SERVER */
3824 "qualified_get_server",
3839 /* Q_ASIN - ADD_SERVER_INFO */
3845 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'),%s,'%s','%s','%s',%s,'%s',%d)",
3855 /* Q_USIN - UPDATE_SERVER_INFO */
3856 "update_server_info",
3861 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
3864 "name = UPPER('%s')",
3871 /* Q_RSVE - RESET_SERVER_ERROR */
3872 "reset_server_error",
3877 "servers SET harderror = 0, dfcheck = dfgen",
3880 "name = UPPER('%s')",
3887 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3888 "set_server_internal_flags",
3893 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s',CHR(0))",
3896 "name = UPPER('%s')",
3903 /* Q_DSIN - DELETE_SERVER_INFO */
3904 "delete_server_info",
3912 "name = UPPER('%s')",
3919 /* Q_GSHI - GET_SERVER_HOST_INFO */
3920 "get_server_host_info",
3925 "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",
3928 "sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
3935 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
3936 "qualified_get_server_host",
3951 /* Q_ASHI - ADD_SERVER_HOST_INFO */
3952 "add_server_host_info",
3957 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s',CHR(0)))",
3967 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
3968 "update_server_host_info",
3973 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s',CHR(0))",
3976 "service = UPPER('%s') AND mach_id = %d",
3983 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
3984 "reset_server_host_error",
3989 "serverhosts SET hosterror = 0",
3992 "service = UPPER('%s') AND mach_id = %d",
3999 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
4000 "set_server_host_override",
4005 "serverhosts SET override = 1",
4008 "service = UPPER('%s') AND mach_id = %d",
4015 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
4016 "set_server_host_internal",
4021 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s',CHR(0)), ltt = %s, lts = %s",
4024 "service = UPPER('%s') AND mach_id = %d",
4031 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
4032 "delete_server_host_info",
4040 "service = UPPER('%s') AND mach_id = %d",
4047 /* Q_GSLO - GET_SERVER_LOCATIONS */
4048 "get_server_locations",
4053 "sh.service, m.name FROM serverhosts sh, machine m",
4056 "sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
4058 "sh.service, m.name",
4063 /* Q_GFSL - GET_FILESYS_BY_LABEL */
4064 "get_filesys_by_label",
4069 "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",
4072 "fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4079 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
4080 "get_filesys_by_machine",
4085 "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",
4088 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4095 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
4096 "get_filesys_by_nfsphys",
4101 "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",
4104 "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'",
4111 /* Q_GFSG - GET_FILESYS_BY_GROUP */
4112 "get_filesys_by_group",
4117 "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",
4120 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4127 /* Q_GFSP - GET_FILESYS_BY_PATH */
4128 "get_filesys_by_path",
4133 "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",
4136 "fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4143 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
4149 "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)",
4159 /* Q_UFIL - UPDATE_FILESYS */
4165 "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'",
4175 /* Q_DFIL - DELETE_FILESYS */
4191 /* Q_GFGM - GET_FSGROUP_MEMBERS */
4192 "get_fsgroup_members",
4197 "fs.label, fg.key FROM fsgroup fg, filesys fs",
4200 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
4207 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
4208 "add_filesys_to_fsgroup",
4213 "INTO fsgroup (group_id,filsys_id,key) VALUES (%d, %d, '%s')",
4223 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
4224 "remove_filesys_from_fsgroup",
4232 "group_id = %d AND filsys_id = %d",
4239 /* Q_GANF - GET_ALL_NFSPHYS */
4245 "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",
4248 "m.mach_id = np.mach_id",
4255 /* Q_GNFP - GET_NFSPHYS */
4261 "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",
4264 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
4271 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
4277 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s',CHR(0)), %s, %s, %s, %s)",
4287 /* Q_UNFP - UPDATE_NFSPHYS */
4293 "nfsphys SET device = NVL('%s',CHR(0)), status = %s, allocated = %s, partsize = %s",
4296 "mach_id = %d AND dir = '%s'",
4303 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
4304 "adjust_nfsphys_allocation",
4309 "nfsphys SET allocated = allocated + %s",
4312 "mach_id = %d AND dir = '%s'",
4319 /* Q_DNFP - DELETE_NFSPHYS */
4328 "mach_id = %d AND dir = '%s'",
4335 /* Q_GQOT - GET_QUOTA */
4341 "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",
4344 "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",
4351 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
4352 "get_quota_by_filesys",
4357 "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",
4360 "fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
4367 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
4373 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
4383 /* Q_UQOT - UPDATE_QUOTA */
4389 "quota SET quota = %s",
4399 /* Q_DQOT - DELETE_QUOTA */
4415 /* Q_GNFQ - GET_NFS_QUOTAS */
4421 "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",
4424 "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'",
4426 "fs.label, u.login",
4431 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
4432 "get_nfs_quotas_by_partition",
4437 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
4440 "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",
4442 "fs.label, np.dir, u.login",
4447 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
4453 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
4463 /* Q_UNFQ - UPDATE_NFS_QUOTA */
4469 "quota SET quota = %s",
4479 /* Q_DNFQ - DELETE_NFS_QUOTA */
4495 /* Q_GZCL - GET_ZEPHYR_CLASS */
4501 "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",
4504 "class LIKE '%s' ESCAPE '*'",
4511 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4517 "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)",
4527 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4528 "update_zephyr_class",
4533 "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",
4543 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4544 "delete_zephyr_class",
4559 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
4560 "get_server_host_access",
4565 "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",
4568 "m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
4575 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
4576 "add_server_host_access",
4581 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d,'%s',%d)",
4591 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
4592 "update_server_host_access",
4597 "hostaccess SET acl_type = '%s', acl_id = %d",
4607 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
4608 "delete_server_host_access",
4623 /* Q_GSVC - GET_SERVICE */
4629 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
4632 "name LIKE '%s' ESCAPE '*'",
4639 /* Q_ASVC - ADD_SERVICE */
4645 "INTO services (name, protocol, port, description) VALUES ('%s','%s',%s,NVL('%s',CHR(0)))",
4655 /* Q_DSVC - DELETE_SERVICE */
4671 /* Q_GPCE - GET_PRINTCAP_ENTRY */
4672 "get_printcap_entry",
4677 "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",
4680 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4687 /* Q_APCE - ADD_PRINTCAP_ENTRY */
4688 "add_printcap_entry",
4693 "INTO printcap (name, mach_id, dir, rp, quotaserver, auth, price, comments) VALUES ('%s',%d,'%s','%s',%d,%s,%s,NVL('%s',CHR(0)))",
4703 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
4704 "delete_printcap_entry",
4719 /* Q_GPCP - GET_PRINTCAP */
4725 "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",
4728 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4735 /* Q_DPCP - DELETE_PRINTCAP */
4751 /* Q_GPDM - GET_PALLADIUM */
4757 "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",
4760 "pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
4767 /* Q_APDM - ADD_PALLADIUM */
4773 "INTO palladium (name, identifier, mach_id) VALUES ('%s',%s,%d)",
4783 /* Q_DPDM - DELETE_PALLADIUM */
4799 /* Q_GALI - GET_ALIAS */
4805 "name, type, trans FROM alias",
4808 "name LIKE '%s' ESCAPE '*' AND type LIKE '%s' ESCAPE '*' AND trans LIKE '%s' ESCAPE '*'",
4810 "name, type, trans",
4815 /* Q_AALI - ADD_ALIAS */
4821 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
4831 /* Q_DALI - DELETE_ALIAS */
4840 "name = '%s' AND type = '%s' AND trans = '%s'",
4847 /* Q_GVAL - GET_VALUE */
4853 "value FROM numvalues",
4863 /* Q_AVAL - ADD_VALUE */
4869 "INTO numvalues (name, value) VALUES ('%s', %s)",
4879 /* Q_UVAL - UPDATE_VALUE */
4885 "numvalues SET value = %s",
4895 /* Q_DVAL - DELETE_VALUE */
4911 /* Q_GATS - GET_ALL_TABLE_STATS */
4912 "get_all_table_stats",
4917 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
4927 /* Q__SDL - _SET_DEBUG_LEVEL */
4944 int QueryCount2 = (sizeof Queries2 / sizeof (struct query));