]> andersk Git - moira.git/blame - server/queries2.c
use CODE=ANSI_C option to proc
[moira.git] / server / queries2.c
CommitLineData
d33e787c 1/* This file defines the query dispatch table for version 2 of the protocol
2 *
3 * $Header$
4 *
5 * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
c801de4c 6 * For copying and distribution information, please see the file
7 * <mit-copyright.h>.
d33e787c 8 */
9
c801de4c 10#include <mit-copyright.h>
03c05291 11#include "mr_server.h"
12#undef ACE_TYPE
13#undef ACE_NAME
14#undef NAME
d33e787c 15#include "query.h"
d548a4e7 16#include "mr_et.h"
d33e787c 17
18/* Specialized Support Query Routines */
19
20/* Special Access Check Routines */
21int access_user();
22int access_login();
23int access_list();
24int access_visible_list();
25int access_vis_list_by_name();
26int access_member();
27int access_qgli();
28int access_service();
29int access_filesys();
a66a2204 30int access_host();
31int access_ahal();
a70337e7 32int access_snt();
d33e787c 33
34/* Query Setup Routines */
45bf7573 35int prefetch_value();
99e09b48 36int prefetch_filesys();
d33e787c 37int setup_ausr();
38int setup_dusr();
39int setup_spop();
40int setup_dpob();
41int setup_dmac();
3c1d412c 42int setup_dsnet();
d33e787c 43int setup_dclu();
44int setup_alis();
45int setup_dlis();
46int setup_dsin();
47int setup_dshi();
48int setup_afil();
49int setup_ufil();
50int setup_dfil();
99e09b48 51int setup_aftg();
d33e787c 52int setup_dnfp();
368be132 53int setup_dqot();
012fc215 54int setup_akum();
3c1d412c 55int setup_dsnt();
a66a2204 56int setup_ahst();
57int setup_ahal();
d33e787c 58
59/* Query Followup Routines */
60int followup_fix_modby();
61int followup_ausr();
62int followup_gpob();
63int followup_glin();
368be132 64int followup_aqot();
135dcb80 65int followup_dqot();
d33e787c 66int followup_gzcl();
67int followup_gsha();
368be132 68int followup_gqot();
d4462d4f 69int followup_gpce();
4ffa124a 70int followup_guax();
71int followup_uuac();
3c1d412c 72int followup_gsnt();
a66a2204 73int followup_ghst();
d33e787c 74
75int set_modtime();
76int set_modtime_by_id();
77int set_finger_modtime();
78int set_pobox_modtime();
0ec43029 79int set_uppercase_modtime();
d33e787c 80int set_mach_modtime_by_id();
81int set_cluster_modtime_by_id();
82int set_serverhost_modtime();
83int set_nfsphys_modtime();
84int set_filesys_modtime();
85int set_zephyr_modtime();
86
87/* Special Queries */
88int set_pobox();
89int get_list_info();
66f4a35b 90int add_member_to_list();
91int delete_member_from_list();
88343c5e 92int get_ace_use();
d33e787c 93int qualified_get_lists();
94int get_members_of_list();
4ffa124a 95int get_end_members_of_list();
d33e787c 96int qualified_get_server();
97int qualified_get_serverhost();
98int trigger_dcm();
99int count_members_of_list();
100int get_lists_of_member();
101int register_user();
2962e9ec 102int _sdl_followup();
d33e787c 103
104
105\f
106/* String compression
107 * These are commonly used strings in the table, defined here so that
108 * they can be shared.
109 */
110
88343c5e 111static char ACE_NAME[] = "ace_name";
112static char ACE_TYPE[] = "ace_type";
3c1d412c 113static char ADDRESS[] = "address";
a66a2204 114static char ALIAS[] = "alias";
d33e787c 115static char CLASS[] = "class";
116static char CLU_ID[] = "clu_id";
03c05291 117static char CLUSTER[] = "clusters";
4ffa124a 118static char COMMENTS[] = "comments";
d33e787c 119static char DESC[] = "description";
120static char DEVICE[] = "device";
121static char DIR[] = "dir";
122static char FILESYS[] = "filesys";
123static char FILSYS_ID[] = "filsys_id";
03c05291 124static char FIRST[] = "first";
125static char HOSTACCESS[] = "hostaccess";
d33e787c 126static char LABEL[] = "label";
03c05291 127static char LAST[] = "last";
d33e787c 128static char LIST[] = "list";
129static char LIST_ID[] = "list_id";
130static char LOCATION[] = "location";
131static char LOGIN[] = "login";
132static char MACH_ID[] = "mach_id";
133static char MACHINE[] = "machine";
134static char MIDDLE[] = "middle";
68dd808d 135static char MIT_ID[] = "clearid";
d33e787c 136static char MOD1[] = "modtime";
137static char MOD2[] = "modby";
138static char MOD3[] = "modwith";
139static char NAME[] = "name";
03c05291 140static char PRINTCAP[] = "printcap";
368be132 141static char QUOTA[] = "quota";
142static char QUOTA_TYPE[] = "quota_type";
4ffa124a 143static char SECURE[] = "secure";
d33e787c 144static char SERVICE[] = "service";
03c05291 145static char SERVERS[] = "servers";
d33e787c 146static char SHELL[] = "shell";
4ffa124a 147static char SIGNATURE[] = "signature";
3c1d412c 148static char SNET_ID[] = "snet_id";
149static char SUBNET[] = "subnet";
d33e787c 150static char STATUS[] = "status";
151static char TYPE[] = "type";
152static char USERS[] = "users";
153static char USERS_ID[] = "users_id";
03c05291 154static char UID[] = "unix_uid";
155static char ZEPH[] = "zephyr";
156static char ZEPH_ID[] = "xmt_id";
d33e787c 157
03c05291 158/* Table Names */
159char *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",
164 "incremental"};
165int num_tables = 27;
d33e787c 166
167
168/* VALOBJS
169 * These are commonly used validation objects, defined here so that they
170 * can be shared.
171 */
172
03c05291 173/*
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
5eaef520 177 * accessed and locked in the proper order and thus avoids deadlock
03c05291 178 * situations
179 */
180
d33e787c 181static struct valobj VOsort0[] = {
99e09b48 182 {V_SORT, 0},
183};
184
185static struct valobj VOwild0[] = {
186 {V_WILD, 0},
187};
188
189static struct valobj VOupwild0[] = {
190 {V_UPWILD, 0},
d33e787c 191};
192
f9f5c199 193static struct valobj VOwild0sort[] = {
194 {V_WILD, 0},
99e09b48 195 {V_SORT, 0},
196};
197
198static struct valobj VOupwild0sort[] = {
199 {V_UPWILD, 0},
200 {V_SORT, 0},
201};
202
203static struct valobj VOwild01sort0[] = {
204 {V_WILD, 0},
205 {V_WILD, 1},
206 {V_SORT, 0},
207};
208
209static struct valobj VOwild01sort01[] = {
210 {V_WILD, 0},
211 {V_WILD, 1},
212 {V_SORT, 0},
5eaef520 213 {V_SORT, 1},
99e09b48 214};
215
216static struct valobj VOwild012sort0[] = { /* get_alias */
4ffa124a 217 {V_WILD, 0},
218 {V_WILD, 1},
219 {V_WILD, 2},
220 {V_SORT, 0},
f9f5c199 221};
222
d33e787c 223
224static struct valobj VOuser0[] = {
03c05291 225 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
d33e787c 226};
227
03c05291 228
339a00a3 229static struct valobj VOuser0lock[] = {
03c05291 230 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
231 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
339a00a3 232};
233
d33e787c 234static struct valobj VOmach0[] = {
03c05291 235 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
d33e787c 236};
237
238static struct valobj VOclu0[] = {
03c05291 239 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
d33e787c 240};
241
242static struct valobj VOlist0[] = {
03c05291 243 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
d33e787c 244};
245
95127ba8 246
d33e787c 247static struct valobj VOchar0[] = {
248 {V_CHAR, 0},
249};
250
d33e787c 251
d33e787c 252
253static struct valobj VOfilsys0user1[] = {
03c05291 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},
d33e787c 257};
258
259
260/* Validations
261 * Commonly used validation records defined here so that they may
262 * be shared.
263 */
264
265static struct validate VDmach = { VOmach0, 1 };
99e09b48 266static struct validate VDwild0= { VOwild0, 1 };
267static struct validate VDupwild0= { VOupwild0, 1 };
5eaef520 268static struct validate VDwild2sort2 = { VOwild01sort01, 4 };
269static struct validate VDwild3sort1 = { VOwild012sort0, 4 };
270static struct validate VDsortf = {
0c345c78 271 VOsort0,
272 1,
273 0,
274 0,
275 0,
276 0,
277 0,
278 0,
279 followup_fix_modby,
d33e787c 280};
281
5eaef520 282static struct validate VDwildsortf = {
0c345c78 283 VOwild0sort,
284 2,
285 0,
286 0,
287 0,
288 0,
289 0,
290 0,
291 followup_fix_modby,
99e09b48 292};
03c05291 293static struct validate VDsort0= { VOsort0, 1 };
99e09b48 294
4ffa124a 295
03c05291 296static struct validate VDupwildsortf = {
0c345c78 297 VOupwild0sort,
298 2,
299 0,
300 0,
301 0,
302 0,
303 0,
304 0,
305 followup_fix_modby,
99e09b48 306};
d33e787c 307/* Query data */
308
309static char *galo_fields[] = {
310 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE,
311};
312
4ffa124a 313static char *gual_fields[] = {
314 LOGIN,
315 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
316 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
317};
0c345c78 318
d33e787c 319static char *gubl_fields[] = {
320 LOGIN,
5eaef520 321 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
4ffa124a 322 MIT_ID, CLASS, MOD1, MOD2, MOD3,
d33e787c 323};
324
5eaef520 325static struct validate gubl_validate =
d33e787c 326{
f9f5c199 327 VOwild0sort,
328 2,
d33e787c 329 0,
330 0,
331 0,
332 0,
333 access_login,
334 0,
4ffa124a 335 followup_guax,
d33e787c 336};
337
4ffa124a 338static char *guau_fields[] = {
0c345c78 339 UID,
340 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
341 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
4ffa124a 342};
0c345c78 343
4ffa124a 344static char *guan_fields[] = {
0c345c78 345 FIRST, LAST,
346 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
347 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
4ffa124a 348};
0c345c78 349
5eaef520 350static struct validate guan_validate =
60452f41 351{
352 VOwild01sort01,
353 4,
354 0,
355 0,
356 0,
357 0,
358 0,
359 0,
360 followup_guax,
361};
362
4ffa124a 363static char *guac_fields[] = {
0c345c78 364 CLASS,
365 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
366 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
4ffa124a 367};
0c345c78 368
4ffa124a 369static char *guam_fields[] = {
0c345c78 370 MIT_ID,
371 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
372 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
4ffa124a 373};
0c345c78 374
d33e787c 375static char *gubu_fields[] = {
0c345c78 376 UID,
5eaef520 377 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
0c345c78 378 MIT_ID, CLASS, MOD1, MOD2, MOD3,
d33e787c 379};
380
5eaef520 381static struct validate gubu_validate =
f9f5c199 382{
383 VOsort0,
384 1,
385 0,
386 0,
387 0,
388 0,
389 access_login,
390 0,
391 followup_fix_modby,
392};
393
d33e787c 394static char *gubn_fields[] = {
395 FIRST, LAST,
5eaef520 396 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
d33e787c 397 MIT_ID, CLASS, MOD1, MOD2, MOD3,
398};
399
99e09b48 400static struct validate gubn_validate =
401{
0c345c78 402 VOwild01sort0,
403 3,
404 0,
405 0,
406 0,
407 0,
408 0,
409 0,
410 followup_fix_modby,
99e09b48 411};
412
d33e787c 413static char *gubc_fields[] = {
414 CLASS,
5eaef520 415 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
d33e787c 416 MIT_ID, CLASS, MOD1, MOD2, MOD3,
417};
418
419static char *gubm_fields[] = {
420 MIT_ID,
5eaef520 421 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
d33e787c 422 MIT_ID, CLASS, MOD1, MOD2, MOD3,
423};
424
0b401a9a 425static char *gudf_fields[] = {
426 LOGIN,
f9a578ec 427 "dirsuppress", "dirremote"
0b401a9a 428};
429
5eaef520 430static struct validate gudf_validate =
0b401a9a 431{
432 VOuser0,
433 2,
434 0,
435 0,
436 0,
437 0,
438 access_user,
439 0,
440 0,
441};
442
4ffa124a 443static char *auac_fields[] = {
5eaef520 444 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
4ffa124a 445 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
d33e787c 446};
447
4ffa124a 448static struct valobj auac_valobj[] = {
03c05291 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},
d33e787c 458};
459
4ffa124a 460static struct validate auac_validate = {
461 auac_valobj,
03c05291 462 9,
4ffa124a 463 LOGIN,
03c05291 464 "login = '%s'",
4ffa124a 465 1,
466 USERS_ID,
467 0,
468 setup_ausr,
469 followup_ausr,
470};
0c345c78 471
d33e787c 472static struct validate ausr_validate = {
4ffa124a 473 auac_valobj,
03c05291 474 8,
d33e787c 475 LOGIN,
03c05291 476 "login = '%s'",
d33e787c 477 1,
478 USERS_ID,
479 0,
480 setup_ausr,
481 followup_ausr,
482};
483
484static char *rusr_fields[] = {
485 UID, LOGIN, "fs_type"
03c05291 486};
d33e787c 487
ba408d23 488static struct valobj rusr_valobj[] = {
03c05291 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},
5eaef520 492 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
03c05291 493 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
494 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
5eaef520 495 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
496 {V_RLOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
ba408d23 497};
498
d33e787c 499static struct validate rusr_validate = {
ba408d23 500 rusr_valobj,
03c05291 501 8,
d33e787c 502 0,
503 0,
504 0,
505 0,
506 0,
507 register_user,
508 0,
509};
510
4ffa124a 511static char *uuac_fields[] = {
d33e787c 512 LOGIN,
5eaef520 513 "newlogin", UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
4ffa124a 514 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
d33e787c 515};
516
4ffa124a 517static struct valobj uuac_valobj[] = {
03c05291 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},
d33e787c 528};
529
4ffa124a 530static struct validate uuac_validate = {
0c345c78 531 uuac_valobj,
03c05291 532 10,
0c345c78 533 0,
534 0,
535 0,
536 USERS_ID,
537 0,
538 setup_ausr,
539 followup_uuac,
4ffa124a 540};
0c345c78 541
d33e787c 542static struct validate uusr_validate = {
4ffa124a 543 uuac_valobj,
03c05291 544 10,
d33e787c 545 0,
546 0,
547 0,
548 USERS_ID,
549 0,
4ffa124a 550 setup_ausr,
d33e787c 551 set_modtime_by_id,
552};
553
554static char *uush_fields[] = {
555 LOGIN,
556 SHELL,
557};
558
03c05291 559static 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},
563};
564
d33e787c 565static struct validate uush_validate = {
03c05291 566 uush_valobj,
567 3,
d33e787c 568 0,
569 0,
570 0,
571 USERS_ID,
572 access_user,
573 0,
574 set_modtime_by_id,
575};
576
577static char *uust_fields[] = {
578 LOGIN,
579 STATUS,
580};
581
4ffa124a 582static char *uuss_fields[] = {
583 LOGIN,
584 SECURE,
585};
0c345c78 586
d33e787c 587static struct validate uust_validate = {
339a00a3 588 VOuser0lock,
589 2,
d33e787c 590 0,
591 0,
592 0,
593 USERS_ID,
594 0,
595 0,
596 set_modtime_by_id,
597};
598
0b401a9a 599static char *uudf_fields[] = {
600 LOGIN,
f9a578ec 601 "dirsuppress", "dirremote"
0b401a9a 602};
603
604static struct validate uudf_validate = {
605 VOuser0lock,
606 2,
607 0,
608 0,
609 0,
610 USERS_ID,
611 access_user,
612 0,
613 set_modtime_by_id,
614};
615
d33e787c 616static char *dusr_fields[] = {
617 LOGIN,
618};
619
03c05291 620struct 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},
629};
630
d33e787c 631static struct validate dusr_validate = {
03c05291 632 dusr_valobj,
633 8,
d33e787c 634 0,
635 0,
636 0,
637 0,
638 0,
639 setup_dusr,
640 0,
641};
642
643static char *dubu_fields[] = {
644 UID,
645};
646
647static struct valobj dubu_valobj[] = {
03c05291 648 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
649 {V_ID, 0, USERS_TABLE, UID, USERS_ID, MR_USER}
d33e787c 650};
651
652static struct validate dubu_validate = {
653 dubu_valobj,
339a00a3 654 2,
d33e787c 655 0,
656 0,
657 0,
658 0,
659 0,
660 setup_dusr,
661 0,
662};
663
012fc215 664static char *gkum_fields[] = { LOGIN, "kerberos",
0c345c78 665 LOGIN, "kerberos" };
012fc215 666
667static char *akum_fields[] = { LOGIN, "kerberos" };
668
669static struct valobj akum_valobj[] =
670{
03c05291 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},
012fc215 674};
675
676static struct validate akum_validate =
677{
0c345c78 678 akum_valobj,
03c05291 679 3,
0c345c78 680 USERS_ID,
3e8c655c 681 "users_id = %d or string_id = %d",
0c345c78 682 2,
683 USERS_ID,
684 access_user,
685 setup_akum,
135dcb80 686 0,
687};
012fc215 688
689static struct validate dkum_validate =
690{
0c345c78 691 akum_valobj,
03c05291 692 3,
0c345c78 693 USERS_ID,
3e8c655c 694 "users_id = %d and string_id = %d",
0c345c78 695 2,
696 USERS_ID,
697 access_user,
698 0,
135dcb80 699 0,
700};
012fc215 701
d33e787c 702static char *gfbl_fields[] = {
703 LOGIN,
704 LOGIN, "fullname", "nickname", "home_addr",
5eaef520 705 "home_phone", "office_addr", "office_phone", "department",
4e5ec77f 706 "affiliation", MOD1, MOD2, MOD3,
d33e787c 707};
708
709static struct validate gfbl_validate = {
710 VOuser0,
711 1,
712 0,
713 0,
714 0,
715 0,
716 access_user,
717 0,
718 followup_fix_modby,
719};
720
721static char *ufbl_fields[] = {
722 LOGIN,
723 "fullname", "nickname", "home_addr",
5eaef520 724 "home_phone", "office_addr", "office_phone", "department",
4e5ec77f 725 "affiliation",
d33e787c 726};
727
03c05291 728static struct valobj ufbl_valobj[] = {
729 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
730 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
731 {V_LEN, 1, USERS_TABLE, "fullname"},
732 {V_LEN, 2, USERS_TABLE, "nickname"},
733 {V_LEN, 3, USERS_TABLE, "home_addr"},
734 {V_LEN, 4, USERS_TABLE, "home_phone"},
735 {V_LEN, 5, USERS_TABLE, "office_addr"},
736 {V_LEN, 6, USERS_TABLE, "office_phone"},
737 {V_LEN, 7, USERS_TABLE, "department"},
738 {V_LEN, 8, USERS_TABLE, "affiliation"},
739};
740
d33e787c 741static struct validate ufbl_validate = {
03c05291 742 ufbl_valobj,
743 10,
d33e787c 744 0,
745 0,
746 0,
747 0,
748 access_user,
749 0,
750 set_finger_modtime,
751};
752
753static char *gpob_fields[] = {
754 LOGIN,
755 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
756};
757
758static struct validate gpob_validate = {
759 VOuser0,
760 1,
761 "potype",
5eaef520 762 "potype != 'NONE' and users_id = %d",
d33e787c 763 1,
764 0,
765 access_user,
766 0,
767 followup_gpob,
768};
769
770static char *gpox_fields[] = {
771 LOGIN, TYPE, "box",
772};
773
5eaef520 774struct valobj gpox_valobj[] = {
03c05291 775 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
776 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK}
777};
778
d33e787c 779static struct validate gpox_validate = {
03c05291 780 gpox_valobj,
781 2,
d33e787c 782 0,
783 0,
784 0,
785 0,
786 0,
787 0,
788 followup_gpob,
789};
790
791static char *spob_fields[] = {
792 LOGIN, TYPE, "box",
793};
794
795static struct valobj spob_valobj[] = {
03c05291 796 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
797 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
798 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
799 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
d33e787c 800};
801
802static struct validate spob_validate = /* SET_POBOX */
803{
804 spob_valobj,
03c05291 805 4,
d33e787c 806 0,
807 0,
808 0,
809 0,
810 access_user,
811 0,
812 set_pobox,
813};
814
03c05291 815struct valobj spop_valobj[] = {
816 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
817 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
818 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
819};
820
d33e787c 821static struct validate spop_validate = /* SET_POBOX_POP */
822{
03c05291 823 spop_valobj,
824 3,
d33e787c 825 0,
826 0,
827 0,
828 0,
829 access_user,
830 setup_spop,
831 set_pobox_modtime,
832};
833
834static struct validate dpob_validate = /* DELETE_POBOX */
835{
03c05291 836 spop_valobj,
837 3,
d33e787c 838 0,
839 0,
840 0,
841 0,
842 access_user,
843 setup_dpob,
844 set_pobox_modtime,
845};
846
847static char *gmac_fields[] = {
848 NAME,
849 NAME, TYPE, MOD1, MOD2, MOD3,
850};
851
a66a2204 852static char *ghst_fields[] = {
ba53ba08 853 NAME, ADDRESS, "location", "network",
854 NAME, "vendor", "model", "os", "location", "contact", "use", "status", "status_change", "network", ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment", "created", "creator", "inuse", MOD1, MOD2, MOD3,
d33e787c 855};
856
a66a2204 857static struct valobj ghst_valobj[] = {
858 {V_UPWILD, 0},
859 {V_UPWILD, 1},
860 {V_UPWILD, 2},
861 {V_UPWILD, 3},
862 {V_SORT, 0},
863};
864
5eaef520 865static struct validate ghst_validate = {
a66a2204 866 ghst_valobj,
867 5,
868 0,
869 0,
870 0,
871 0,
872 access_host,
873 0,
874 followup_ghst,
875};
876
877static char *ahst_fields[] = {
878 NAME, "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
879};
880
881static struct valobj ahst_valobj[] = {
03c05291 882 {V_CHAR, 0, MACHINE_TABLE, NAME},
883 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
884 {V_CHAR, 2, MACHINE_TABLE, "model"},
885 {V_CHAR, 3, MACHINE_TABLE, "os"},
886 {V_CHAR, 4, MACHINE_TABLE, "location"},
887 {V_CHAR, 5, MACHINE_TABLE, "contact"},
5eaef520 888 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
03c05291 889 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
890 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
891 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
892 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
893 {V_ID, 8, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
894 {V_TYPE, 10, 0, ACE_TYPE, 0, MR_ACE},
a66a2204 895 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
03c05291 896 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
897 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
d33e787c 898};
899
a66a2204 900static struct validate ahst_validate = {
901 ahst_valobj,
03c05291 902 16,
d33e787c 903 NAME,
03c05291 904 "name = UPPER('%s')",
d33e787c 905 1,
906 MACH_ID,
a66a2204 907 access_host,
908 setup_ahst,
0ec43029 909 set_uppercase_modtime,
d33e787c 910};
911
a66a2204 912static char *uhst_fields[] = {
d33e787c 913 NAME,
a66a2204 914 "newname", "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
d33e787c 915};
916
a66a2204 917static struct valobj uhst_valobj[] = {
03c05291 918 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
919 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
920 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
921 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
922 {V_CHAR, 0, MACHINE_TABLE, "name"},
923 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
924 {V_RENAME, 1, MACHINE_TABLE, NAME, MACH_ID, MR_NOT_UNIQUE},
925 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
926 {V_CHAR, 3, MACHINE_TABLE, "model"},
927 {V_CHAR, 4, MACHINE_TABLE, "os"},
928 {V_CHAR, 5, MACHINE_TABLE, "location"},
929 {V_ID, 9, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
930 {V_TYPE, 11, 0, ACE_TYPE, 0, MR_ACE},
a66a2204 931 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
03c05291 932 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
933 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
d33e787c 934};
935
a66a2204 936static struct validate uhst_validate = {
937 uhst_valobj,
03c05291 938 16,
d33e787c 939 0,
940 0,
941 0,
942 MACH_ID,
a66a2204 943 access_host,
944 setup_ahst,
d33e787c 945 set_modtime_by_id,
946};
947
a66a2204 948static char *dhst_fields[] = {
d33e787c 949 NAME,
950};
951
a66a2204 952static struct valobj dhst_valobj[] = {
03c05291 953 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
954 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
955 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
956 {V_RLOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
957 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
958 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
959 {V_LOCK, 0, MCMAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
960 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
961 {V_RLOCK, 0, PALLADIUM_TABLE, 0, MACH_ID, MR_DEADLOCK},
962 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
339a00a3 963};
964
a66a2204 965static struct validate dhst_validate = {
966 dhst_valobj,
03c05291 967 10,
d33e787c 968 0,
969 0,
970 0,
971 0,
972 0,
973 setup_dmac,
974 0,
975};
976
a66a2204 977static char *ghal_fields[] = {
5eaef520 978 ALIAS, "canonical_hostname",
979 ALIAS, "canonical_hostname"
a66a2204 980};
981
982static struct valobj ghal_valobj[] = {
983 {V_UPWILD, 0},
984 {V_UPWILD, 1},
985 {V_SORT, 0},
986};
987
988static struct validate ghal_validate = {
989 ghal_valobj,
990 3,
991 0,
992 0,
993 0,
994 0,
65adfb53 995 access_ahal,
a66a2204 996 0,
03c05291 997 0,
a66a2204 998};
999
1000static struct valobj ahal_valobj[] = {
03c05291 1001 {V_CHAR, 0, HOSTALIAS_TABLE, NAME},
a66a2204 1002 {V_UPWILD, 0},
03c05291 1003 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
a66a2204 1004};
1005
1006static struct validate ahal_validate = {
1007 ahal_valobj,
1008 3,
1009 NAME,
03c05291 1010 "name = '%s'",
a66a2204 1011 1,
1012 MACH_ID,
1013 access_ahal,
1014 setup_ahal,
1015 0,
1016};
1017
1018static struct valobj dhal_valobj[] = {
03c05291 1019 {V_UPWILD, 0},
1020 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1021 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
a66a2204 1022};
1023
1024static struct validate dhal_validate = {
1025 dhal_valobj,
1026 3,
1027 NAME,
03c05291 1028 "name = '%s' AND mach_id = %d",
a66a2204 1029 2,
1030 MACH_ID,
1031 access_ahal,
1032 0,
1033 0,
1034};
1035
3c1d412c 1036static char *gsnt_fields[] = {
5eaef520 1037 NAME,
1038 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1039 MOD1, MOD2, MOD3
3c1d412c 1040};
1041
1042static struct valobj gsnt_valobj[] = {
03c05291 1043 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1044 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1045 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
3c1d412c 1046 {V_UPWILD, 0},
1047 {V_SORT, 0},
1048};
1049
1050static struct validate gsnt_validate = {
1051 gsnt_valobj,
03c05291 1052 5,
3c1d412c 1053 0,
1054 0,
1055 0,
1056 0,
a70337e7 1057 access_snt,
3c1d412c 1058 0,
1059 followup_gsnt,
1060};
1061
1062static char *asnt_fields[] = {
5eaef520 1063 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
3c1d412c 1064};
1065
1066static struct valobj asnt_valobj[] = {
03c05291 1067 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1068 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1069 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1070 {V_CHAR, 0, SUBNET_TABLE, NAME},
1071 {V_LEN, 1, SUBNET_TABLE, DESC},
1072 {V_LEN, 6, SUBNET_TABLE, "prefix"},
1073 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
bd8c26ff 1074 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
3c1d412c 1075};
1076
5eaef520 1077static struct validate asnt_validate =
3c1d412c 1078{
5eaef520 1079 asnt_valobj,
1080 8,
1081 NAME,
1082 "name = UPPER('%s')",
1083 1,
1084 SNET_ID,
1085 0,
1086 prefetch_value,
1087 set_uppercase_modtime,
3c1d412c 1088};
1089
1090static char *usnt_fields[] = {
5eaef520 1091 NAME,
1092 "newname", DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
3c1d412c 1093};
1094
1095static struct valobj usnt_valobj[] = {
03c05291 1096 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1097 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1098 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1099 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_NO_MATCH},
1100 {V_RENAME, 1, SUBNET_TABLE, NAME, SNET_ID, MR_NOT_UNIQUE},
1101 {V_LEN, 2, SUBNET_TABLE, DESC},
1102 {V_LEN, 7, SUBNET_TABLE, "prefix"},
1103 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
bd8c26ff 1104 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
3c1d412c 1105};
1106
5eaef520 1107static struct validate usnt_validate =
3c1d412c 1108{
5eaef520 1109 usnt_valobj,
1110 9,
1111 NAME,
1112 "snet_id = %d",
1113 1,
1114 SNET_ID,
1115 0,
1116 0,
1117 set_modtime_by_id,
3c1d412c 1118};
1119
1120static char *dsnt_fields[] = {
1121 NAME,
1122};
1123
1124static struct valobj dsnt_valobj[] = {
03c05291 1125 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1126 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1127 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
3c1d412c 1128};
1129
1130static struct validate dsnt_validate = {
1131 dsnt_valobj,
03c05291 1132 3,
3c1d412c 1133 0,
1134 0,
1135 0,
1136 0,
1137 0,
1138 setup_dsnt,
1139 0,
1140};
1141
d33e787c 1142static char *gclu_fields[] = {
1143 NAME,
5eaef520 1144 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
d33e787c 1145};
1146
1147static char *aclu_fields[] = {
1148 NAME, DESC, LOCATION,
1149};
0c345c78 1150
339a00a3 1151static struct valobj aclu_valobj[] = {
03c05291 1152 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1153 {V_CHAR, 0, CLUSTER_TABLE, NAME},
1154 {V_LEN, 1, CLUSTER_TABLE, DESC},
1155 {V_LEN, 2, CLUSTER_TABLE, LOCATION},
339a00a3 1156};
1157
5eaef520 1158static struct validate aclu_validate =
d33e787c 1159{
339a00a3 1160 aclu_valobj,
03c05291 1161 4,
d33e787c 1162 NAME,
03c05291 1163 "name = '%s'",
d33e787c 1164 1,
68dd808d 1165 CLU_ID,
d33e787c 1166 0,
45bf7573 1167 prefetch_value,
d33e787c 1168 set_modtime,
1169};
1170
1171static char *uclu_fields[] = {
1172 NAME,
1173 "newname", DESC, LOCATION,
1174};
1175
1176static struct valobj uclu_valobj[] = {
03c05291 1177 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1178 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1179 {V_RENAME, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_NOT_UNIQUE},
1180 {V_LEN, 2, CLUSTER_TABLE, DESC},
1181 {V_LEN, 3, CLUSTER_TABLE, LOCATION},
d33e787c 1182};
1183
1184static struct validate uclu_validate = {
1185 uclu_valobj,
03c05291 1186 5,
d33e787c 1187 0,
1188 0,
1189 0,
1190 CLU_ID,
1191 0,
1192 0,
1193 set_modtime_by_id,
1194};
1195
1196static char *dclu_fields[] = {
1197 NAME,
1198};
1199
1200static struct validate dclu_validate = {
0c345c78 1201 VOclu0,
1202 1,
1203 0,
1204 0,
1205 0,
1206 0,
1207 0,
1208 setup_dclu,
1209 0,
d33e787c 1210};
1211
1212static char *gmcm_fields[] = {
1213 MACHINE, CLUSTER,
1214 MACHINE, CLUSTER,
1215};
1216
99e09b48 1217static struct valobj gmcm_valobj[] =
1218{
1219 {V_UPWILD, 0},
1220 {V_WILD, 1},
1221 {V_SORT, 0},
1222 {V_SORT, 1},
1223};
1224
1225static struct validate gmcm_validate = { gmcm_valobj, 4 };
1226
d33e787c 1227static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1228{ /* DELETE_MACHINE_FROM_CLUSTER */
03c05291 1229 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1230 {V_ID, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
d33e787c 1231};
1232
1233static struct validate amtc_validate = /* for amtc and dmfc */
1234{
1235 amtc_valobj,
1236 2,
1237 MACH_ID,
3e8c655c 1238 "mach_id = %d and clu_id = %d",
d33e787c 1239 2,
1240 0,
1241 0,
1242 0,
1243 set_mach_modtime_by_id,
1244};
1245
1246static char *gcld_fields[] = {
88343c5e 1247 CLUSTER, "serv_label",
1248 CLUSTER, "serv_label", "serv_cluster",
1249};
1250
1251static char *acld_fields[] = {
d33e787c 1252 CLUSTER, "serv_label", "serv_cluster",
1253};
1254
1255static struct valobj acld_valobj[] =
1256{
03c05291 1257 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1258 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1259 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
d33e787c 1260};
1261
5eaef520 1262static struct validate acld_validate =
1263{
d33e787c 1264 acld_valobj,
99e09b48 1265 3,
1266 CLU_ID,
03c05291 1267 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
99e09b48 1268 3,
1269 0,
1270 0,
1271 0,
1272 set_cluster_modtime_by_id,
1273};
1274
1275static struct valobj dcld_valobj[] =
1276{
03c05291 1277 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
99e09b48 1278};
1279
5eaef520 1280static struct validate dcld_validate =
1281{
99e09b48 1282 dcld_valobj,
03c05291 1283 1,
d33e787c 1284 CLU_ID,
3e8c655c 1285 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
d33e787c 1286 3,
1287 0,
1288 0,
1289 0,
1290 set_cluster_modtime_by_id,
1291};
1292
03c05291 1293static char *glin_fields[] = {
1294 NAME,
1295 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1296 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
99e09b48 1297};
1298
03c05291 1299static struct validate glin_validate = {
0c345c78 1300 0,
0c345c78 1301 0,
1302 0,
1303 0,
1304 0,
1305 0,
03c05291 1306 access_vis_list_by_name,
0c345c78 1307 0,
03c05291 1308 get_list_info,
d33e787c 1309};
1310
03c05291 1311static char *alis_fields[] = {
1312 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1313 ACE_TYPE, ACE_NAME, DESC,
d33e787c 1314};
1315
03c05291 1316static struct valobj alis_valobj[] = {
1317 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1318 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1319 {V_CHAR, 0, LIST_TABLE, NAME},
1320 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1321 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
1322 {V_LEN, 9, LIST_TABLE, DESC},
d33e787c 1323};
1324
03c05291 1325static struct validate alis_validate = {
1326 alis_valobj,
1327 6,
d33e787c 1328 NAME,
03c05291 1329 "name = '%s'",
d33e787c 1330 1,
03c05291 1331 LIST_ID,
d33e787c 1332 0,
03c05291 1333 setup_alis,
1334 set_modtime,
d33e787c 1335};
1336
03c05291 1337static char *ulis_fields[] = {
d33e787c 1338 NAME,
03c05291 1339 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1340 ACE_TYPE, ACE_NAME, DESC,
d33e787c 1341};
1342
03c05291 1343static struct valobj ulis_valobj[] = {
1344 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1345 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1346 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1347 {V_RENAME, 1, LIST_TABLE, NAME, LIST_ID, MR_NOT_UNIQUE},
1348 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
1349 {V_CHAR, 1, LIST_TABLE, NAME},
1350 {V_LEN, 10, LIST_TABLE, DESC},
d33e787c 1351};
1352
03c05291 1353static struct validate ulis_validate = {
1354 ulis_valobj,
1355 7,
d33e787c 1356 NAME,
03c05291 1357 "list_id = %d",
d33e787c 1358 1,
03c05291 1359 LIST_ID,
1360 access_list,
1361 setup_alis,
1362 set_modtime_by_id,
d33e787c 1363};
1364
03c05291 1365static char *dlis_fields[] = {
1366 NAME,
d33e787c 1367};
1368
5eaef520 1369static struct valobj dlis_valobj[] = {
03c05291 1370 {V_RLOCK, 0, CAPACLS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1371 {V_RLOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1372 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1373 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1374 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
5eaef520 1375 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
03c05291 1376 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1377 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1378};
1379
1380static struct validate dlis_validate = {
1381 dlis_valobj,
1382 8,
d33e787c 1383 NAME,
03c05291 1384 "list_id = %d",
d33e787c 1385 1,
1386 0,
03c05291 1387 access_list,
1388 setup_dlis,
d33e787c 1389 0,
1390};
1391
03c05291 1392static char *amtl_fields[] = {
1393 "list_name", "member_type", "member_name",
d33e787c 1394};
1395
03c05291 1396static struct valobj amtl_valobj[] = {
1397 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1398 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1399 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1400 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1401 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
99e09b48 1402};
1403
03c05291 1404static struct validate amtl_validate =
1405{
1406 amtl_valobj,
1407 5,
d33e787c 1408 0,
1409 0,
1410 0,
1411 0,
03c05291 1412 access_list,
d33e787c 1413 0,
03c05291 1414 add_member_to_list,
d33e787c 1415};
1416
03c05291 1417static struct validate dmfl_validate =
1418{
1419 amtl_valobj,
0c345c78 1420 5,
1421 0,
1422 0,
1423 0,
1424 0,
03c05291 1425 access_list,
0c345c78 1426 0,
03c05291 1427 delete_member_from_list,
d33e787c 1428};
1429
03c05291 1430static char *gaus_fields[] = {
1431 ACE_TYPE, ACE_NAME,
1432 "use_type", "use_name",
d33e787c 1433};
1434
03c05291 1435static struct valobj gaus_valobj[] = {
1436 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1437 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1438 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1439 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1440 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1441 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1442 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
d33e787c 1443};
1444
03c05291 1445static struct validate gaus_validate = {
1446 gaus_valobj,
1447 7,
d33e787c 1448 0,
d33e787c 1449 0,
d33e787c 1450 0,
d33e787c 1451 0,
03c05291 1452 access_member,
d33e787c 1453 0,
03c05291 1454 get_ace_use,
d33e787c 1455};
1456
03c05291 1457static char *qgli_fields[] = {
1458 "active", "publicflg", "hidden", "maillist", "grouplist",
1459 "list",
3e8c655c 1460};
d33e787c 1461
03c05291 1462static struct valobj qgli_valobj[] = {
1463 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1464 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1465 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1466 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1467 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
d33e787c 1468};
1469
03c05291 1470static struct validate qgli_validate = {
1471 qgli_valobj,
1472 5,
647daf33 1473 0,
d33e787c 1474 0,
1475 0,
87167924 1476 0,
03c05291 1477 access_qgli,
d33e787c 1478 0,
03c05291 1479 qualified_get_lists,
d33e787c 1480};
1481
03c05291 1482static char *gmol_fields[] = {
1483 "list_name",
1484 "member_type", "member_name",
d33e787c 1485};
1486
5eaef520 1487static struct valobj gmol_valobj[] = {
03c05291 1488 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1489 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1490 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1491
1492};
1493static struct validate gmol_validate = {
5eaef520 1494 gmol_valobj,
339a00a3 1495 3,
d33e787c 1496 0,
d33e787c 1497 0,
03c05291 1498 0,
1499 0,
1500 access_visible_list,
1501 0,
1502 get_members_of_list,
d33e787c 1503};
1504
03c05291 1505static struct validate geml_validate = {
1506 gmol_valobj,
1507 3,
d33e787c 1508 0,
1509 0,
1510 0,
1511 0,
03c05291 1512 access_visible_list,
d33e787c 1513 0,
03c05291 1514 get_end_members_of_list,
d33e787c 1515};
1516
03c05291 1517static char *glom_fields[] = {
1518 "member_type", "member_name",
1519 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
d33e787c 1520};
1521
03c05291 1522static struct valobj glom_valobj[] = {
5eaef520 1523 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1524 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1525 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1526 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1527 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1528 {V_SORT, 0},
d33e787c 1529};
1530
03c05291 1531static struct validate glom_validate = {
1532 glom_valobj,
1533 6,
d33e787c 1534 0,
1535 0,
03c05291 1536 0,
1537 0,
1538 access_member,
1539 0,
1540 get_lists_of_member,
d33e787c 1541};
1542
03c05291 1543static char *cmol_fields[] = {
1544 "list_name",
1545 "count",
d33e787c 1546};
1547
03c05291 1548static struct validate cmol_validate = {
1549 VOlist0,
d33e787c 1550 1,
1551 0,
1552 0,
1553 0,
1554 0,
03c05291 1555 access_visible_list,
d33e787c 1556 0,
03c05291 1557 count_members_of_list,
d33e787c 1558};
1559
03c05291 1560static char *gsin_fields[] = {
1561 SERVICE,
1562 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
1563 TYPE, "enable", "inprogress", "harderror", "errmsg",
1564 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
88343c5e 1565};
1566
03c05291 1567static struct valobj gsin_valobj[] =
99e09b48 1568{
03c05291 1569 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1570 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1571 {V_UPWILD, 0 },
99e09b48 1572};
1573
5eaef520 1574static struct validate gsin_validate =
03c05291 1575{
1576 gsin_valobj,
1577 3,
99e09b48 1578 0,
1579 0,
1580 0,
1581 0,
03c05291 1582 access_service,
99e09b48 1583 0,
03c05291 1584 followup_glin,
99e09b48 1585};
1586
03c05291 1587static char *qgsv_fields[] = {
1588 "enable", "inprogress", "harderror",
1589 "service",
4ffa124a 1590};
0c345c78 1591
03c05291 1592static struct valobj qgsv_valobj[] = {
1593 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1594 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1595 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
d33e787c 1596};
1597
03c05291 1598static struct validate qgsv_validate = {
1599 qgsv_valobj,
1600 3,
d33e787c 1601 0,
1602 0,
1603 0,
1604 0,
d33e787c 1605 0,
03c05291 1606 0,
1607 qualified_get_server,
d33e787c 1608};
1609
03c05291 1610static char *asin_fields[] = {
1611 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
1612 ACE_TYPE, ACE_NAME,
d33e787c 1613};
1614
03c05291 1615static struct valobj asin_valobj[] = {
1616 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1617 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1618 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
cf03c11b 1619 {V_CHAR, 0, SERVERS_TABLE, NAME},
03c05291 1620 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1621 {V_LEN, 3, SERVERS_TABLE, "script"},
1622 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
1623 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
1624 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
d33e787c 1625};
1626
03c05291 1627static struct validate asin_validate = /* for asin, usin */
1628{
1629 asin_valobj,
1630 9,
1631 NAME,
1632 "name = UPPER('%s')",
d33e787c 1633 1,
d33e787c 1634 0,
03c05291 1635 0,
1636 0,
1637 set_uppercase_modtime,
d33e787c 1638};
1639
03c05291 1640static struct validate rsve_validate = {
1641 asin_valobj,
1642 3,
1643 NAME,
1644 "name = UPPER('%s')",
d33e787c 1645 1,
d33e787c 1646 0,
03c05291 1647 access_service,
1648 0,
1649 set_uppercase_modtime,
d33e787c 1650};
1651
03c05291 1652static char *ssif_fields[] = {
1653 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
d33e787c 1654};
1655
03c05291 1656static struct valobj ssif_valobj[] = {
1657 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1658 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1659 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1660 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
d33e787c 1661};
1662
03c05291 1663static struct validate ssif_validate = {
1664 ssif_valobj,
1665 4,
1666 NAME,
1667 "name = UPPER('%s')",
d33e787c 1668 1,
1669 0,
1670 0,
03c05291 1671 0,
d33e787c 1672 0,
1673};
1674
03c05291 1675static char *dsin_fields[] = {
1676 SERVICE,
95127ba8 1677};
1678
03c05291 1679static struct validate dsin_validate = {
1680 asin_valobj,
0c345c78 1681 3,
03c05291 1682 NAME,
1683 "name = UPPER('%s')",
1684 1,
0c345c78 1685 0,
1686 0,
03c05291 1687 setup_dsin,
0c345c78 1688 0,
95127ba8 1689};
1690
03c05291 1691static char *gshi_fields[] = {
1692 SERVICE, MACHINE,
1693 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
1694 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
5eaef520 1695 "value3", MOD1, MOD2, MOD3,
95127ba8 1696};
1697
03c05291 1698static struct valobj gshi_valobj[] = {
1699 { V_UPWILD, 0 },
1700 { V_UPWILD, 1 },
1701};
1702
1703static struct validate gshi_validate = {
1704 gshi_valobj,
0c345c78 1705 2,
1706 0,
1707 0,
1708 0,
1709 0,
03c05291 1710 access_service,
1711 0,
1712 followup_fix_modby,
95127ba8 1713};
1714
03c05291 1715static char *qgsh_fields[] = {
1716 "service", "enable", "override", "success", "inprogress", "hosterror",
1717 "service", MACHINE,
d33e787c 1718};
1719
03c05291 1720static struct valobj qgsh_valobj[] = {
1721 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1722 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1723 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1724 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1725 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
99e09b48 1726};
1727
03c05291 1728static struct validate qgsh_validate = {
1729 qgsh_valobj,
1730 5,
d33e787c 1731 0,
1732 0,
1733 0,
1734 0,
1735 0,
1736 0,
03c05291 1737 qualified_get_serverhost,
d33e787c 1738};
1739
03c05291 1740static char *ashi_fields[] = {
1741 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
d33e787c 1742};
1743
03c05291 1744static struct valobj ashi_valobj[] = {
1745 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1746 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
5eaef520 1747 {V_LOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
03c05291 1748 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1749 {V_CHAR, 0, SERVERHOSTS_TABLE, NAME},
1750 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
45bf7573 1751};
1752
03c05291 1753static struct validate ashi_validate = /* ashi & ushi */
1754{
1755 ashi_valobj,
1756 6,
1757 SERVICE,
1758 "service = UPPER('%s') AND mach_id = %d",
d33e787c 1759 2,
d33e787c 1760 0,
03c05291 1761 access_service,
d33e787c 1762 0,
03c05291 1763 set_serverhost_modtime,
99e09b48 1764};
1765
5eaef520 1766static struct validate rshe_validate =
03c05291 1767{
1768 ashi_valobj,
1769 4,
1770 SERVICE,
1771 "service = UPPER('%s') AND mach_id = %d",
1772 2,
1773 0,
1774 access_service,
1775 0,
1776 set_serverhost_modtime,
d33e787c 1777};
1778
5eaef520 1779static struct validate ssho_validate =
03c05291 1780{
1781 ashi_valobj,
1782 4,
1783 SERVICE,
1784 "service = UPPER('%s') AND mach_id = %d",
d33e787c 1785 2,
d33e787c 1786 0,
03c05291 1787 access_service,
1788 0,
1789 trigger_dcm,
d33e787c 1790};
1791
03c05291 1792static char *sshi_fields[] = {
1793 "service", MACHINE, "override", "success", "inprogress",
1794 "hosterror", "errmsg", "ltt", "lts",
368be132 1795};
1796
03c05291 1797static struct valobj sshi_valobj[] = {
1798 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1799 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1800 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE}, /** Was this ok to add? */
1801 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
368be132 1802};
1803
5eaef520 1804static struct validate sshi_validate =
03c05291 1805{
1806 sshi_valobj,
135dcb80 1807 4,
368be132 1808 0,
1809 0,
1810 0,
1811 0,
1812 0,
1813 0,
03c05291 1814 0,
368be132 1815};
1816
03c05291 1817static char *dshi_fields[] = {
1818 SERVICE, MACHINE,
368be132 1819};
1820
5eaef520 1821static struct validate dshi_validate =
03c05291 1822{
1823 ashi_valobj,
1824 4,
1825 SERVICE,
1826 "service = UPPER('%s') AND mach_id = %d",
135dcb80 1827 2,
368be132 1828 0,
03c05291 1829 access_service,
1830 setup_dshi,
368be132 1831 0,
03c05291 1832};
1833
1834static char *gslo_fields[] = {
1835 "server",
1836 "server", MACHINE,
1837};
1838
1839static char *gfsl_fields[] = {
1840 LABEL,
1841 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1842 "create", "lockertype", MOD1, MOD2, MOD3,
1843};
1844
1845static char *gfsm_fields[] = {
1846 MACHINE,
1847 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1848 "create", "lockertype", MOD1, MOD2, MOD3,
1849};
1850
1851static struct valobj gfsm_valobj[] = {
1852 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1853 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1854};
1855
1856static struct validate gfsm_validate = {
1857 gfsm_valobj,
1858 2,
368be132 1859 0,
1860 0,
368be132 1861 0,
03c05291 1862 0,
1863 0,
1864 0,
1865 followup_fix_modby,
368be132 1866};
1867
03c05291 1868static char *gfsn_fields[] = {
1869 MACHINE, "parition",
1870 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1871 "create", "lockertype", MOD1, MOD2, MOD3,
368be132 1872};
1873
03c05291 1874static struct valobj gfsn_valobj[] =
1875{
1876 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1877 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1878 {V_WILD, 1},
368be132 1879};
1880
03c05291 1881static struct validate gfsn_validate = {
1882 gfsn_valobj,
368be132 1883 3,
1884 0,
1885 0,
368be132 1886 0,
1887 0,
368be132 1888 0,
1889 0,
03c05291 1890 followup_fix_modby,
368be132 1891};
1892
03c05291 1893static char *gfsp_fields[] = {
1894 "path",
1895 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1896 "create", "lockertype", MOD1, MOD2, MOD3,
d33e787c 1897};
1898
03c05291 1899static char *gfsg_fields[] = {
1900 LIST,
1901 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1902 "create", "lockertype", MOD1, MOD2, MOD3,
1903};
1904
1905static struct valobj gfsg_valobj[] = {
1906 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1907 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1908};
1909
1910static struct validate gfsg_validate = {
1911 gfsg_valobj,
99e09b48 1912 2,
d33e787c 1913 0,
1914 0,
1915 0,
1916 0,
03c05291 1917 access_list,
d33e787c 1918 0,
03c05291 1919 followup_fix_modby,
d33e787c 1920};
1921
03c05291 1922static char *afil_fields[] = {
1923 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1924 "create", "lockertype",
d33e787c 1925};
1926
03c05291 1927static struct valobj afil_valobj[] = {
1928 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1929 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1930 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1931 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1932 {V_CHAR, 0, FILESYS_TABLE, LABEL},
1933 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
1934 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1935 {V_CHAR, 3, FILESYS_TABLE, NAME},
1936 {V_LEN, 4, FILESYS_TABLE, "mount"},
1937 {V_LEN, 6, FILESYS_TABLE, COMMENTS},
1938 {V_ID, 7, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1939 {V_ID, 8, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1940 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
99e09b48 1941};
1942
03c05291 1943static struct validate afil_validate = {
1944 afil_valobj,
1945 13,
1946 LABEL,
1947 "label = '%s'",
1948 1,
1949 FILSYS_ID,
1950 0,
1951 setup_afil,
1952 set_filesys_modtime,
1953};
99e09b48 1954
03c05291 1955static char *ufil_fields[] = {
1956 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", COMMENTS,
1957 "owner", "owners", "create", "lockertype",
d33e787c 1958};
1959
03c05291 1960static struct valobj ufil_valobj[] = {
1961 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1962 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1963 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1964 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1965 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1966 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1967 {V_RENAME, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
1968 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
1969 {V_ID, 3, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1970 {V_CHAR, 4, FILESYS_TABLE, NAME},
1971 {V_LEN, 5, FILESYS_TABLE, "mount"},
1972 {V_LEN, 7, FILESYS_TABLE, COMMENTS},
1973 {V_ID, 8, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1974 {V_ID, 9, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1975 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
d33e787c 1976};
1977
03c05291 1978static struct validate ufil_validate = {
1979 ufil_valobj,
1980 15,
1981 LABEL,
1982 "filsys_id = %d",
1983 1,
368be132 1984 FILSYS_ID,
d33e787c 1985 0,
03c05291 1986 setup_ufil,
1987 set_filesys_modtime,
d33e787c 1988};
1989
03c05291 1990static char *dfil_fields[] = {
1991 LABEL,
1992};
1993
1994static struct valobj dfil_valobj[] = {
1995 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1996 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
1997 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1998 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
1999 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2000};
2001
2002static struct validate dfil_validate = {
2003 dfil_valobj,
2004 5,
2005 "label",
2006 "filsys_id = %d",
2007 1,
d33e787c 2008 0,
2009 0,
03c05291 2010 setup_dfil,
2011 0,
d33e787c 2012};
2013
03c05291 2014static char *gfgm_fields[] = {
2015 "fsgroup", FILESYS, "sortkey"
5eaef520 2016};
03c05291 2017
2018static struct valobj gfgm_valobj[] = {
2019 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2020 {V_SORT, 1},
2021 {V_SORT, 0},
d33e787c 2022};
2023
03c05291 2024static struct validate gfgm_validate = {
2025 gfgm_valobj,
2026 3,
d33e787c 2027 0,
2028 0,
2029 0,
2030 0,
2031 0,
2032 0,
d33e787c 2033 0,
d33e787c 2034};
2035
03c05291 2036static struct valobj aftg_valobj[] = {
2037 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2038 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
2039 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2040 {V_ID, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
d33e787c 2041};
2042
03c05291 2043static struct validate aftg_validate = {
2044 aftg_valobj,
339a00a3 2045 4,
03c05291 2046 "group_id",
2047 "group_id = %d and filsys_id = %d",
2048 2,
2049 0,
2050 0,
2051 0,
d33e787c 2052 0,
d33e787c 2053};
2054
03c05291 2055static char *ganf_fields[] = {
2056 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
d33e787c 2057};
2058
03c05291 2059static char *gnfp_fields[] = {
2060 MACHINE, DIR,
2061 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
d33e787c 2062};
2063
03c05291 2064static struct valobj gnfp_valobj[] = {
2065 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2066 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2067 {V_WILD, 1},
d33e787c 2068};
2069
03c05291 2070static struct validate gnfp_validate = {
2071 gnfp_valobj,
2072 3,
2073 0,
2074 0,
2075 0,
2076 0,
2077 0,
2078 0,
2079 followup_fix_modby,
d33e787c 2080};
2081
03c05291 2082static struct valobj anfp_valobj[] = {
2083 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2084 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2085 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2086 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2087 {V_LEN, 2, NFSPHYS_TABLE, "device"},
2088};
2089
2090static struct validate anfp_validate = {
2091 anfp_valobj,
2092 5,
2093 DIR,
2094 "mach_id = %d and dir = '%s'",
2095 2,
2096 "nfsphys_id",
d33e787c 2097 0,
03c05291 2098 prefetch_value,
2099 set_nfsphys_modtime,
2100};
2101
2102static struct validate unfp_validate = {
2103 anfp_valobj,
2104 5,
2105 DIR,
2106 "mach_id = %d and dir = '%s'",
2107 2,
2108 "nfsphys_id",
d33e787c 2109 0,
03c05291 2110 0,
2111 set_nfsphys_modtime,
d33e787c 2112};
2113
03c05291 2114static char *ajnf_fields[] = {
2115 MACHINE, DIR, "adjustment",
d33e787c 2116};
2117
03c05291 2118static char *dnfp_fields[] = {
2119 MACHINE, DIR,
d33e787c 2120};
2121
03c05291 2122static struct valobj dnfp_valobj[] = {
2123 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2124 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2125 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2126 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2127
2128};
2129
2130static struct validate dnfp_validate = {
2131 dnfp_valobj,
339a00a3 2132 4,
03c05291 2133 DIR,
2134 "mach_id = %d and dir = '%s'",
2135 2,
2136 "nfsphys_id",
66f4a35b 2137 0,
03c05291 2138 setup_dnfp,
2139 set_nfsphys_modtime,
2140};
2141
2142static char *gqot_fields[] = {
2143 FILESYS, TYPE, NAME,
2144 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
66f4a35b 2145};
2146
03c05291 2147static struct valobj gqot_valobj[] = {
2148 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2149 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2150 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2151 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2152 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2153 {V_WILD, 0},
2154 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2155 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2156 {V_SORT, 0, 0, 0, 0, 0},
2157};
2158
2159static struct validate gqot_validate = {
2160 gqot_valobj,
2161 9,
66f4a35b 2162 0,
2163 0,
2164 0,
d33e787c 2165 0,
d33e787c 2166 0,
03c05291 2167 0,
2168 followup_gqot,
d33e787c 2169};
2170
03c05291 2171static char *gqbf_fields[] = {
2172 FILESYS,
2173 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
d33e787c 2174};
2175
03c05291 2176static struct validate gqbf_validate = {
2177 VOwild0sort,
0c345c78 2178 2,
2179 0,
2180 0,
2181 0,
2182 0,
03c05291 2183 access_filesys,
0c345c78 2184 0,
03c05291 2185 followup_gqot,
d33e787c 2186};
2187
03c05291 2188static char *aqot_fields[] = {
2189 FILESYS, TYPE, NAME, QUOTA,
d33e787c 2190};
2191
03c05291 2192static struct valobj aqot_valobj[] = {
2193 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2194 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2195 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2196 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2197 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2198 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2199 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2200 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
d33e787c 2201};
2202
03c05291 2203static struct validate aqot_validate = {
2204 aqot_valobj,
2205 8,
2206 FILSYS_ID,
2207 "filsys_id = %d and type = '%s' and entity_id = %d",
2208 3,
0c345c78 2209 0,
2210 0,
03c05291 2211 prefetch_filesys,
2212 followup_aqot,
2213};
2214
2215static struct validate uqot_validate = {
2216 aqot_valobj,
2217 8,
2218 FILSYS_ID,
2219 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2220 3,
2221 0,
0c345c78 2222 0,
03c05291 2223 setup_dqot,
2224 followup_aqot,
2225};
2226
2227static struct validate dqot_validate = {
2228 aqot_valobj,
2229 8,
2230 FILSYS_ID,
2231 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2232 3,
0c345c78 2233 0,
0c345c78 2234 0,
03c05291 2235 setup_dqot,
2236 followup_dqot,
d33e787c 2237};
2238
03c05291 2239static char *gnfq_fields[] = {
2240 FILESYS, LOGIN,
2241 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
d33e787c 2242};
2243
03c05291 2244static struct validate gnfq_validate = {
2245 VOwild0sort,
2246 2,
d33e787c 2247 0,
2248 0,
2249 0,
2250 0,
03c05291 2251 access_filesys,
d33e787c 2252 0,
03c05291 2253 followup_gqot,
d33e787c 2254};
2255
03c05291 2256static char *gnqp_fields[] = {
2257 MACHINE, DIR,
2258 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
4ffa124a 2259};
0c345c78 2260
03c05291 2261static struct valobj gnqp_valobj[] = {
2262 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2263 {V_WILD, 1},
d33e787c 2264};
2265
03c05291 2266static struct validate gnqp_validate = { gnqp_valobj, 2, };
2267
2268static char *anfq_fields[] = {
2269 FILESYS, LOGIN, QUOTA,
d33e787c 2270};
2271
03c05291 2272static struct validate anfq_validate = {
2273 VOfilsys0user1,
d33e787c 2274 3,
03c05291 2275 FILSYS_ID,
2276 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2277 2,
2278 0, /* object ? */
d33e787c 2279 0,
03c05291 2280 prefetch_filesys,
2281 followup_aqot,
d33e787c 2282};
2283
03c05291 2284static struct validate unfq_validate = {
2285 VOfilsys0user1,
2286 3,
2287 FILSYS_ID,
2288 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2289 2,
d33e787c 2290 0,
2291 0,
03c05291 2292 setup_dqot,
2293 followup_aqot,
2294};
2295
2296static struct validate dnfq_validate = {
2297 VOfilsys0user1,
2298 3,
2299 FILSYS_ID,
2300 "filsys_id = %d AND entity_id = %d",
2301 2,
d33e787c 2302 0,
d33e787c 2303 0,
03c05291 2304 setup_dqot,
2305 followup_dqot,
d33e787c 2306};
2307
d33e787c 2308static char *gzcl_fields[] = {
0c345c78 2309 CLASS,
2310 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
5eaef520 2311 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
d33e787c 2312};
2313
03c05291 2314static struct valobj gzcl_valobj[] = {
2315 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2316 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2317 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2318 {V_WILD, 0},
2319 {V_SORT, 0},
2320};
d33e787c 2321static struct validate gzcl_validate = {
03c05291 2322 gzcl_valobj,
2323 5,
d33e787c 2324 0,
2325 0,
2326 0,
2327 0,
2328 0,
2329 0,
2330 followup_gzcl,
2331};
2332
2333static char *azcl_fields[] = {
0c345c78 2334 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2335 "iws_type", "iws_name", "iui_type", "iui_name",
d33e787c 2336};
2337
2338static struct valobj azcl_valobj[] = {
03c05291 2339 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2340 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
5eaef520 2341 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
03c05291 2342 {V_CHAR, 0, ZEPHYR_TABLE, CLASS},
2343 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
d548a4e7 2344 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
03c05291 2345 {V_TYPE, 3, 0, ACE_TYPE, 0, MR_ACE},
d548a4e7 2346 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
03c05291 2347 {V_TYPE, 5, 0, ACE_TYPE, 0, MR_ACE},
d548a4e7 2348 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
03c05291 2349 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
d548a4e7 2350 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
d33e787c 2351};
2352
2353static struct validate azcl_validate = {
2354 azcl_valobj,
03c05291 2355 12,
d33e787c 2356 CLASS,
03c05291 2357 "class = '%s'",
d33e787c 2358 1,
2359 0,
2360 0,
2361 0,
2362 set_zephyr_modtime,
2363};
2364
2365static char *uzcl_fields[] = {
0c345c78 2366 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2367 "iws_type", "iws_name", "iui_type", "iui_name",
d33e787c 2368};
2369
2370static struct valobj uzcl_valobj[] = {
03c05291 2371 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2372 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2373 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2374 {V_RENAME, 1, ZEPHYR_TABLE, CLASS, 0, MR_NOT_UNIQUE},
2375 {V_TYPE, 2, 0, ACE_TYPE, 0, MR_ACE},
d548a4e7 2376 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
03c05291 2377 {V_TYPE, 4, 0, ACE_TYPE, 0, MR_ACE},
d548a4e7 2378 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
03c05291 2379 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
d548a4e7 2380 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
03c05291 2381 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
d548a4e7 2382 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
d33e787c 2383};
2384
2385static struct validate uzcl_validate = {
2386 uzcl_valobj,
03c05291 2387 12,
d33e787c 2388 CLASS,
3e8c655c 2389 "class = '%s'",
d33e787c 2390 1,
2391 0,
2392 0,
2393 0,
2394 set_zephyr_modtime,
2395};
2396
2397static struct validate dzcl_validate = {
2398 0,
2399 0,
2400 CLASS,
73043086 2401 "class = '%s'",
d33e787c 2402 1,
2403 0,
2404 0,
2405 0,
2406 0,
2407};
2408
03c05291 2409static char *gsha_fields[] = {
2410 MACHINE,
2411 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
2412};
2413
5eaef520 2414static struct validate gsha_validate =
03c05291 2415{
2416 VOupwild0,
2417 1,
2418 0,
2419 0,
2420 0,
2421 0,
2422 0,
2423 0,
2424 followup_gsha,
2425};
2426
2427static char *asha_fields[] = {
2428 MACHINE, ACE_TYPE, ACE_NAME,
2429};
2430
2431static struct valobj asha_valobj[] = {
2432 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2433 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2434 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2435 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2436 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2437};
2438
5eaef520 2439static struct validate asha_validate =
03c05291 2440{
2441 asha_valobj,
2442 5,
2443 MACH_ID,
2444 "mach_id = %d",
2445 1,
2446 MACH_ID,
2447 0,
2448 0,
2449 set_modtime_by_id,
2450};
2451
fd5b2340 2452static char *gsvc_fields[] = {
2453 SERVICE,
0c345c78 2454 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3,
d33e787c 2455};
2456
fd5b2340 2457static char *asvc_fields[] = {
0c345c78 2458 SERVICE, "protocol", "port", DESC,
fd5b2340 2459};
2460
03c05291 2461static struct valobj asvc_valobj[] = {
2462 {V_CHAR, 0, SERVICES_TABLE, NAME},
2463 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
2464 {V_CHAR, 3, SERVICES_TABLE, DESC},
2465};
2466
fd5b2340 2467static struct validate asvc_validate = {
03c05291 2468 asvc_valobj,
2469 3,
fd5b2340 2470 NAME,
03c05291 2471 "name = '%s'",
fd5b2340 2472 1,
2473 0,
2474 0,
2475 0,
2476 set_modtime,
2477};
2478
2479static char *gpce_fields[] = {
0c345c78 2480 "printer",
2481 "printer", "spooling_host", "spool_directory", "rprinter",
2482 "quotaserver", "authenticate", "price", COMMENTS,
2483 MOD1, MOD2, MOD3,
d33e787c 2484};
2485
5eaef520 2486static struct valobj gpce_valobj[] = {
03c05291 2487 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2488 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2489 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
2490 {V_WILD, 0},
2491 {V_SORT, 0},
2492};
2493
d4462d4f 2494static struct validate gpce_validate = {
03c05291 2495 gpce_valobj,
2496 5,
d4462d4f 2497 0,
2498 0,
2499 0,
2500 0,
2501 0,
2502 0,
2503 followup_gpce,
2504};
2505
fd5b2340 2506static char *apce_fields[] = {
0c345c78 2507 "printer", "spooling_host", "spool_directory", "rprinter",
2508 "quotaserver", "authenticate", "price", COMMENTS,
2509 MOD1, MOD2, MOD3,
fad88070 2510};
2511
fd5b2340 2512static struct valobj apce_valobj[] = {
03c05291 2513 {V_CHAR, 0, PRINTCAP_TABLE, NAME},
2514 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2515 {V_LEN, 2, PRINTCAP_TABLE, "dir"},
2516 {V_LEN, 3, PRINTCAP_TABLE, "rp"},
2517 {V_ID, 4, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2518 {V_CHAR, 7, PRINTCAP_TABLE, "comments"},
d33e787c 2519};
2520
fd5b2340 2521static struct validate apce_validate = {
2522 apce_valobj,
03c05291 2523 6,
d33e787c 2524 NAME,
03c05291 2525 "name = '%s'",
d33e787c 2526 1,
2527 0,
2528 0,
2529 0,
2530 set_modtime,
2531};
2532
fd5b2340 2533static struct validate dpce_validate = {
fad88070 2534 0,
2535 0,
2536 NAME,
3e8c655c 2537 "name = '%s'",
fad88070 2538 1,
2539 0,
2540 0,
2541 0,
2542 0,
2543};
2544
fd5b2340 2545static char *gpcp_fields[] = {
0c345c78 2546 "printer",
2547 "printer", "spooling_host", "spool_directory", "rprinter", COMMENTS,
2548 MOD1, MOD2, MOD3,
fd5b2340 2549};
2550
012fc215 2551static char *gpdm_fields[] = {
0c345c78 2552 NAME,
2553 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
012fc215 2554};
2555
2556static char *apdm_fields[] = {
0c345c78 2557 NAME, "rpcnum", "host"
03c05291 2558};
012fc215 2559
2560static struct valobj apdm_valobj[] = {
03c05291 2561 {V_CHAR, 0, PALLADIUM_TABLE, NAME},
2562 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
012fc215 2563};
2564
2565static struct validate apdm_validate = {
2566 apdm_valobj,
2567 2,
2568 NAME,
03c05291 2569 "name = '%s'",
012fc215 2570 1,
2571 0,
2572 0,
2573 0,
2574 set_modtime,
2575};
2576
2577static struct validate dpdm_validate = {
2578 0,
2579 0,
2580 NAME,
3e8c655c 2581 "name = '%s'",
012fc215 2582 1,
2583 0,
2584 0,
2585 0,
2586 0,
2587};
2588
d33e787c 2589static char *gali_fields[] = {
2590 NAME, TYPE, "trans",
2591 NAME, TYPE, "trans",
2592};
2593
2594static char *aali_fields[] = {
2595 NAME, TYPE, "trans",
2596};
2597
2598static struct valobj aali_valobj[] = {
03c05291 2599 {V_CHAR, 0, ALIAS_TABLE, NAME},
2600 {V_TYPE, 1, 0, ALIAS, 0, MR_TYPE},
2601 {V_CHAR, 2, ALIAS_TABLE, "trans"},
d33e787c 2602};
2603
2604static struct validate aali_validate = {
2605 aali_valobj,
2606 3,
2607 "trans",
03c05291 2608 "name = '%s' and type = '%s' and trans = '%s'",
d33e787c 2609 3,
2610 0,
2611 0,
2612 0,
2613 0,
2614};
2615
2616static struct validate dali_validate = /* DELETE_ALIAS */
2617{
2618 0,
2619 0,
2620 "trans",
73043086 2621 "name = '%s' and type = '%s' and trans = '%s'",
d33e787c 2622 3,
2623 0,
2624 0,
2625 0,
2626 0,
2627};
2628
2629static char *gval_fields[] = {
2630 NAME, "value",
2631};
2632
2633static struct valobj gval_valobj[] = {
03c05291 2634 {V_NAME, 0, NUMVALUES_TABLE, NAME, 0, MR_NO_MATCH},
d33e787c 2635};
2636
2637static struct validate gval_validate = {
2638 gval_valobj,
2639 1,
2640 0,
2641 0,
2642 0,
2643 0,
2644 0,
2645 0,
2646 0,
2647};
2648
2649static char *aval_fields[] = {
2650 NAME, "value",
2651};
2652
03c05291 2653static struct valobj aval_valobj[] = {
2654 {V_CHAR, 0, NUMVALUES_TABLE, NAME},
2655};
2656
d33e787c 2657static struct validate aval_validate = /* for aval, uval, and dval */
2658{
03c05291 2659 aval_valobj,
d33e787c 2660 1,
2661 NAME,
03c05291 2662 "name = '%s'",
d33e787c 2663 1,
2664 0,
2665 0,
2666 0,
2667 0,
2668};
2669
2670static char *dval_fields[] = {
2671 NAME,
2672};
2673
2674static char *gats_fields[] = {
45bf7573 2675 "table_name", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
d33e787c 2676};
2677
2962e9ec 2678static char *_sdl_fields[] = {
5eaef520 2679 "level",
2962e9ec 2680};
2681
5eaef520 2682static struct validate _sdl_validate =
2962e9ec 2683{
5eaef520 2684 0,
2685 0,
2686 (char *)0,
2687 (char *)0,
2688 0,
2689 0,
2690 0,
2691 0,
2692 _sdl_followup,
2962e9ec 2693};
2694
d33e787c 2695
2696\f
2697/* Generalized Query Definitions */
2698
e41960ac 2699/* Note: For any query which uses prefetch_value, the vcnt should be
2700 * one less than the number of %-format specifiers in the tlist.
2701 */
2702
d33e787c 2703struct query Queries2[] = {
2704 {
2705 /* Q_GALO - GET_ALL_LOGINS */
2706 "get_all_logins",
2707 "galo",
2708 RETRIEVE,
2709 "u",
03c05291 2710 USERS_TABLE,
2711 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
d33e787c 2712 galo_fields,
2713 6,
0c345c78 2714 "u.users_id != 0",
d33e787c 2715 0,
f9f5c199 2716 &VDsort0,
d33e787c 2717 },
5eaef520 2718
d33e787c 2719 {
2720 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2721 "get_all_active_logins",
2722 "gaal",
2723 RETRIEVE,
2724 "u",
03c05291 2725 USERS_TABLE,
2726 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
d33e787c 2727 galo_fields,
2728 6,
0c345c78 2729 "u.status = 1",
d33e787c 2730 0,
f9f5c199 2731 &VDsort0,
d33e787c 2732 },
5eaef520 2733
4ffa124a 2734 {
0c345c78 2735 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2736 "get_user_account_by_login",
2737 "gual",
2738 RETRIEVE,
2739 "u",
03c05291 2740 USERS_TABLE,
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",
0c345c78 2742 gual_fields,
2743 15,
03c05291 2744 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 2745 1,
2746 &gubl_validate,
4ffa124a 2747 },
5eaef520 2748
4ffa124a 2749 {
0c345c78 2750 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2751 "get_user_account_by_uid",
2752 "guau",
2753 RETRIEVE,
2754 "u",
03c05291 2755 USERS_TABLE,
2756 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
0c345c78 2757 guau_fields,
2758 15,
03c05291 2759 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 2760 1,
2761 &gubu_validate,
4ffa124a 2762 },
5eaef520 2763
4ffa124a 2764 {
0c345c78 2765 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2766 "get_user_account_by_name",
2767 "guan",
2768 RETRIEVE,
2769 "u",
03c05291 2770 USERS_TABLE,
2771 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
0c345c78 2772 guan_fields,
2773 15,
03c05291 2774 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comments = str.string_id",
0c345c78 2775 2,
60452f41 2776 &guan_validate,
4ffa124a 2777 },
5eaef520 2778
4ffa124a 2779 {
0c345c78 2780 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2781 "get_user_account_by_class",
2782 "guac",
2783 RETRIEVE,
2784 "u",
03c05291 2785 USERS_TABLE,
2786 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
0c345c78 2787 guac_fields,
2788 15,
03c05291 2789 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 2790 1,
2791 &VDsortf,
4ffa124a 2792 },
5eaef520 2793
4ffa124a 2794 {
0c345c78 2795 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2796 "get_user_account_by_id",
2797 "guai",
2798 RETRIEVE,
2799 "u",
03c05291 2800 USERS_TABLE,
2801 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
0c345c78 2802 guam_fields,
2803 15,
03c05291 2804 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 2805 1,
2806 &VDwildsortf,
4ffa124a 2807 },
5eaef520 2808
d33e787c 2809 {
2810 /* Q_GUBL - GET_USER_BY_LOGIN */
2811 "get_user_by_login",
2812 "gubl",
2813 RETRIEVE,
2814 "u",
5eaef520 2815 USERS_TABLE,
03c05291 2816 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
d33e787c 2817 gubl_fields,
2818 12,
0c345c78 2819 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
d33e787c 2820 1,
f9f5c199 2821 &gubl_validate,
d33e787c 2822 },
5eaef520 2823
d33e787c 2824 {
2825 /* Q_GUBU - GET_USER_BY_UID */
2826 "get_user_by_uid",
2827 "gubu",
2828 RETRIEVE,
2829 "u",
03c05291 2830 USERS_TABLE,
2831 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
d33e787c 2832 gubu_fields,
2833 12,
03c05291 2834 "u.unix_uid = %s AND u.users_id != 0",
d33e787c 2835 1,
f9f5c199 2836 &gubu_validate,
d33e787c 2837 },
5eaef520 2838
d33e787c 2839 {
2840 /* Q_GUBN - GET_USER_BY_NAME */
2841 "get_user_by_name",
2842 "gubn",
2843 RETRIEVE,
2844 "u",
03c05291 2845 USERS_TABLE,
2846 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
d33e787c 2847 gubn_fields,
2848 12,
0c345c78 2849 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
d33e787c 2850 2,
99e09b48 2851 &gubn_validate,
d33e787c 2852 },
5eaef520 2853
d33e787c 2854 {
2855 /* Q_GUBC - GET_USER_BY_CLASS */
2856 "get_user_by_class",
2857 "gubc",
2858 RETRIEVE,
2859 "u",
03c05291 2860 USERS_TABLE,
2861 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
d33e787c 2862 gubc_fields,
2863 12,
03c05291 2864 "u.type = UPPER('%s') AND u.users_id != 0",
d33e787c 2865 1,
2866 &VDsortf,
2867 },
5eaef520 2868
d33e787c 2869 {
2870 /* Q_GUBM - GET_USER_BY_MITID */
2871 "get_user_by_mitid",
2872 "gubm",
2873 RETRIEVE,
2874 "u",
03c05291 2875 USERS_TABLE,
2876 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
d33e787c 2877 gubm_fields,
2878 12,
0c345c78 2879 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
d33e787c 2880 1,
99e09b48 2881 &VDwildsortf,
d33e787c 2882 },
5eaef520 2883
0b401a9a 2884 {
2885 /* Q_GUDF - GET_USER_DIRECTORY_FLAGS */
2886 "get_user_directory_flags",
2887 "gudf",
2888 RETRIEVE,
2889 "u",
2890 USERS_TABLE,
f9a578ec 2891 "u.dirsuppress, u.dirremote FROM users u",
0b401a9a 2892 gudf_fields,
f9a578ec 2893 2,
0b401a9a 2894 "u.users_id = %d",
2895 1,
2896 &gudf_validate,
2897 },
2898
4ffa124a 2899 {
2900 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2901 "add_user_account",
2902 "auac",
2903 APPEND,
2904 "u",
03c05291 2905 USERS_TABLE,
5eaef520 2906 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', %d, LENGTH(NVL('%s', CHR(0))), %s, %s)", /* followup_ausr fixes signature field */
4ffa124a 2907 auac_fields,
2908 12,
2909 (char *)0,
2910 0,
2911 &auac_validate,
2912 },
5eaef520 2913
d33e787c 2914 {
45bf7573 2915 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
d33e787c 2916 "add_user",
2917 "ausr",
2918 APPEND,
2919 "u",
03c05291 2920 USERS_TABLE,
5eaef520 2921 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', 0, CHR(0), 0, %s)",
4ffa124a 2922 auac_fields,
d33e787c 2923 9,
45bf7573 2924 0,
d33e787c 2925 0,
2926 &ausr_validate,
2927 },
5eaef520 2928
d33e787c 2929 {
2930 /* Q_RUSR - REGISTER_USER */
2931 "register_user",
2932 "rusr",
2933 APPEND,
2934 0,
2935 0,
2936 0,
2937 rusr_fields,
2938 3,
2939 0,
2940 0,
2941 &rusr_validate,
2942 },
5eaef520 2943
4ffa124a 2944 {
2945 /* Q_UUAC - UPDATE_USER_ACCOUNT */
2946 "update_user_account",
2947 "uuac",
2948 UPDATE,
2949 "u",
03c05291 2950 USERS_TABLE,
5eaef520 2951 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s', comments = %d, signature = LENGTH(NVL('%s', CHR(0))), secure = %s", /* followup_uuac fixes signature */
4ffa124a 2952 uuac_fields,
2953 12,
2954 "users_id = %d",
2955 1,
2956 &uuac_validate,
2957 },
5eaef520 2958
d33e787c 2959 {
2960 /* Q_UUSR - UPDATE_USER */
2961 "update_user",
2962 "uusr",
2963 UPDATE,
2964 "u",
03c05291 2965 USERS_TABLE,
5eaef520 2966 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s', CHR(0)), first = NVL('%s', CHR(0)), middle = NVL('%s', CHR(0)), status = %s, clearid = NVL('%s', CHR(0)), type = '%s'",
4ffa124a 2967 uuac_fields,
d33e787c 2968 9,
4e5ec77f 2969 "users_id = %d",
d33e787c 2970 1,
2971 &uusr_validate,
2972 },
2973
2974 {
2975 /* Q_UUSH - UPDATE_USER_SHELL */
2976 "update_user_shell",
2977 "uush",
2978 UPDATE,
2979 "u",
03c05291 2980 USERS_TABLE,
5eaef520 2981 "users SET shell = '%s'",
d33e787c 2982 uush_fields,
2983 1,
4e5ec77f 2984 "users_id = %d",
d33e787c 2985 1,
2986 &uush_validate,
2987 },
2988
2989 {
2990 /* Q_UUST - UPDATE_USER_STATUS */
2991 "update_user_status",
2992 "uust",
2993 UPDATE,
2994 "u",
03c05291 2995 USERS_TABLE,
4e5ec77f 2996 "users SET status = %s",
d33e787c 2997 uust_fields,
2998 1,
4e5ec77f 2999 "users_id = %d",
d33e787c 3000 1,
3001 &uust_validate,
3002 },
3003
4ffa124a 3004 {
3005 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
3006 "update_user_security_status",
3007 "uuss",
3008 UPDATE,
3009 "u",
03c05291 3010 USERS_TABLE,
135dcb80 3011 "users SET secure = %s",
4ffa124a 3012 uuss_fields,
3013 1,
3014 "users_id = %d",
3015 1,
3016 &uust_validate,
3017 },
5eaef520 3018
0b401a9a 3019 {
3020 /* Q_UUDF - UPDATE_USER_DIRECTORY_FLAGS */
3021 "update_user_directory_flags",
3022 "uudf",
3023 UPDATE,
3024 "u",
3025 USERS_TABLE,
f9a578ec 3026 "users SET dirsuppress = %s, dirremote = %s",
0b401a9a 3027 uudf_fields,
f9a578ec 3028 2,
0b401a9a 3029 "users_id = %d",
3030 1,
3031 &uudf_validate,
3032 },
3033
d33e787c 3034 {
5eaef520 3035 /* Q_DUSR - DELETE_USER */
d33e787c 3036 "delete_user",
3037 "dusr",
3038 DELETE,
3039 "u",
03c05291 3040 USERS_TABLE,
d33e787c 3041 (char *)0,
3042 dusr_fields,
3043 0,
4e5ec77f 3044 "users_id = %d",
d33e787c 3045 1,
3046 &dusr_validate,
3047 },
3048
3049 {
3050 /* Q_DUBU - DELETE_USER_BY_UID */
3051 "delete_user_by_uid",
3052 "dubu",
3053 DELETE,
3054 "u",
03c05291 3055 USERS_TABLE,
d33e787c 3056 (char *)0,
3057 dubu_fields,
3058 0,
e41960ac 3059 "users_id = %d",
d33e787c 3060 1,
3061 &dubu_validate,
3062 },
3063
012fc215 3064 {
5eaef520 3065 /* Q_GKUM - GET_KERBEROS_USER_MAP */
012fc215 3066 "get_kerberos_user_map",
3067 "gkum",
3068 RETRIEVE,
3069 "k",
03c05291 3070 KRBMAP_TABLE,
3071 "u.login, str.string FROM krbmap km, users u, strings str",
012fc215 3072 gkum_fields,
3073 2,
0c345c78 3074 "u.login LIKE '%s' ESCAPE '*' AND str.string LIKE '%s' ESCAPE '*' AND km.users_id = u.users_id AND km.string_id = str.string_id",
012fc215 3075 2,
99e09b48 3076 &VDwild2sort2,
012fc215 3077 },
3078
3079 {
3080 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3081 "add_kerberos_user_map",
3082 "akum",
3083 APPEND,
3084 "k",
03c05291 3085 KRBMAP_TABLE,
99e09b48 3086 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
012fc215 3087 akum_fields,
3088 2,
3089 0,
3090 0,
3091 &akum_validate,
3092 },
3093
3094 {
3095 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3096 "delete_kerberos_user_map",
3097 "dkum",
3098 DELETE,
3099 "k",
03c05291 3100 KRBMAP_TABLE,
012fc215 3101 0,
3102 akum_fields,
3103 0,
99e09b48 3104 "users_id = %d AND string_id = %d",
012fc215 3105 2,
3106 &dkum_validate,
3107 },
3108
d33e787c 3109 {
3110 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3111 "get_finger_by_login",
3112 "gfbl",
3113 RETRIEVE,
3114 "u",
03c05291 3115 USERS_TABLE,
3116 "login, fullname, nickname, home_addr, home_phone, office_addr, office_phone, department, affiliation, TO_CHAR(fmodtime, 'DD-mon-YYYY HH24:MI:SS'), fmodby, fmodwith FROM users",
d33e787c 3117 gfbl_fields,
3118 12,
03c05291 3119 "users_id = %d",
d33e787c 3120 1,
3121 &gfbl_validate,
3122 },
3123
3124 {
3125 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3126 "update_finger_by_login",
3127 "ufbl",
3128 UPDATE,
3129 "u",
03c05291 3130 USERS_TABLE,
5eaef520 3131 "users SET fullname= NVL('%s', CHR(0)), nickname= NVL('%s', CHR(0)), home_addr= NVL('%s', CHR(0)), home_phone= NVL('%s', CHR(0)), office_addr= NVL('%s', CHR(0)), office_phone= NVL('%s', CHR(0)), department= NVL('%s', CHR(0)), affiliation= NVL('%s', CHR(0))",
d33e787c 3132 ufbl_fields,
3133 8,
4e5ec77f 3134 "users_id = %d",
d33e787c 3135 1,
3136 &ufbl_validate,
3137 },
3138
3139 {
3140 /* Q_GPOB - GET_POBOX */
3141 "get_pobox",
3142 "gpob",
3143 RETRIEVE,
3144 "u",
03c05291 3145 USERS_TABLE,
3146 "login, potype, pop_id || ':' || box_id, TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
d33e787c 3147 gpob_fields,
3148 6,
03c05291 3149 "users_id = %d",
d33e787c 3150 1,
3151 &gpob_validate,
3152 },
3153
3154 {
3155 /* Q_GAPO - GET_ALL_POBOXES */
3156 "get_all_poboxes",
3157 "gapo",
3158 RETRIEVE,
3159 "u",
03c05291 3160 USERS_TABLE,
3161 "login, potype, pop_id || ':' || box_id FROM users",
d33e787c 3162 gpox_fields,
3163 3,
03c05291 3164 "potype != 'NONE'",
d33e787c 3165 0,
3166 &gpox_validate,
3167 },
5eaef520 3168
d33e787c 3169 {
3170 /* Q_GPOP - GET_POBOXES_POP */
3171 "get_poboxes_pop",
3172 "gpop",
3173 RETRIEVE,
3174 "u",
03c05291 3175 USERS_TABLE,
3176 "login, potype, pop_id || ':' || box_id FROM users",
d33e787c 3177 gpox_fields,
3178 3,
03c05291 3179 "potype = 'POP'",
d33e787c 3180 0,
3181 &gpox_validate
3182 },
3183
3184 {
3185 /* Q_GPOF - GET_POBOXES_SMTP */
3186 "get_poboxes_smtp",
3187 "gpos",
3188 RETRIEVE,
3189 "u",
03c05291 3190 USERS_TABLE,
3191 "login, potype, pop_id || ':' || box_id FROM users",
d33e787c 3192 gpox_fields,
3193 3,
03c05291 3194 "potype = 'SMTP'",
d33e787c 3195 0,
3196 &gpox_validate
3197 },
3198
3199 {
3200 /* Q_SPOB - SET_POBOX */
3201 "set_pobox",
3202 "spob",
3203 UPDATE,
3204 0,
03c05291 3205 USERS_TABLE,
d33e787c 3206 0,
3207 spob_fields,
3208 3,
3209 (char *)0,
3210 0,
3211 &spob_validate,
3212 },
3213
3214 {
3215 /* Q_SPOP - SET_POBOX_POP */
3216 "set_pobox_pop",
3217 "spop",
3218 UPDATE,
3219 "u",
03c05291 3220 USERS_TABLE,
4e5ec77f 3221 "users SET potype = 'POP'",
d33e787c 3222 spob_fields,
3223 0,
4e5ec77f 3224 "users_id = %d",
d33e787c 3225 1,
3226 &spop_validate,
3227 },
3228
3229 {
3230 /* Q_DPOB - DELETE_POBOX */
3231 "delete_pobox",
3232 "dpob",
3233 UPDATE,
3234 "u",
03c05291 3235 USERS_TABLE,
3236 "users SET potype = 'NONE'",
3237 spob_fields,
3238 0,
3239 "users_id = %d",
d33e787c 3240 1,
03c05291 3241 &dpob_validate,
d33e787c 3242 },
3243
3244 {
a66a2204 3245 /* Q_GHST - GET_HOST */
3246 "get_host",
3247 "ghst",
3248 RETRIEVE,
3249 "m",
03c05291 3250 MACHINE_TABLE,
3251 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
a66a2204 3252 ghst_fields,
3253 21,
5eaef520 3254 "m.name LIKE '%s' ESCAPE '*' AND m.address LIKE '%s' ESCAPE '*' AND m.location LIKE '%s' ESCAPE '*' AND s.name LIKE '%s' ESCAPE '*' AND m.mach_id != 0 AND s.snet_id = m.snet_id",
a66a2204 3255 4,
3256 &ghst_validate,
3257 },
3258
3259 {
3260 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3261 "add_host",
3262 "ahst",
d33e787c 3263 APPEND,
3264 "m",
03c05291 3265 MACHINE_TABLE,
5eaef520 3266 "INTO machine (name, vendor, model, os, location, contact, use, status, statuschange, snet_id, address, owner_type, owner_id, acomment, ocomment, created, inuse, mach_id, creator) VALUES (UPPER('%s'), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL(UPPER('%s'), CHR(0)), NVL('%s', CHR(0)), %s, %s, SYSDATE, %d, '%s', '%s', %d, %d, %d, SYSDATE, SYSDATE, %s, %s)",
a66a2204 3267 ahst_fields,
3268 14,
45bf7573 3269 0,
d33e787c 3270 0,
a66a2204 3271 &ahst_validate,
d33e787c 3272 },
3273
3274 {
a66a2204 3275 /* Q_UHST - UPDATE_HOST */
3276 "update_host",
3277 "uhst",
d33e787c 3278 UPDATE,
3279 "m",
03c05291 3280 MACHINE_TABLE,
5eaef520 3281 "machine SET name = NVL(UPPER('%s'), CHR(0)), vendor = NVL(UPPER('%s'), CHR(0)), model = NVL(UPPER('%s'), CHR(0)), os = NVL(UPPER('%s'), CHR(0)), location = NVL(UPPER('%s'), CHR(0)), contact = NVL('%s', CHR(0)), use = %s, status = %s, snet_id = %d, address = '%s', owner_type = '%s', owner_id = %d, acomment = %d, ocomment = %d",
a66a2204 3282 uhst_fields,
3283 14,
4e5ec77f 3284 "mach_id = %d",
d33e787c 3285 1,
a66a2204 3286 &uhst_validate,
d33e787c 3287 },
3288
3289 {
a66a2204 3290 /* Q_DHST - DELETE_HOST */
3291 "delete_host",
3292 "dhst",
d33e787c 3293 DELETE,
3294 "m",
03c05291 3295 MACHINE_TABLE,
d33e787c 3296 (char *)0,
a66a2204 3297 dhst_fields,
d33e787c 3298 0,
4e5ec77f 3299 "mach_id = %d",
d33e787c 3300 1,
a66a2204 3301 &dhst_validate,
3302 },
3303
03c05291 3304 {
3305 /* Q_GMAC - GET_MACHINE */
3306 "get_machine",
3307 "gmac",
3308 RETRIEVE,
3309 "m",
3310 MACHINE_TABLE,
3311 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
3312 gmac_fields,
3313 5,
5eaef520 3314 "name LIKE '%s' ESCAPE '*' AND mach_id != 0",
03c05291 3315 1,
3316 &VDupwildsortf,
3317 },
3318
a66a2204 3319 {
3320 /* Q_GHAL - GET_HOSTALIAS */
3321 "get_hostalias",
3322 "ghal",
3323 RETRIEVE,
03c05291 3324 "a",
3325 HOSTALIAS_TABLE,
3326 "a.name, m.name FROM hostalias a, machine m",
a66a2204 3327 ghal_fields,
3328 2,
3329 "m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
3330 2,
3331 &ghal_validate,
3332 },
3333
3334 {
3335 /* Q_AHAL - ADD_HOSTALIAS */
3336 "add_hostalias",
3337 "ahal",
3338 APPEND,
3339 "a",
03c05291 3340 HOSTALIAS_TABLE,
5eaef520 3341 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'), %d)",
a66a2204 3342 ghal_fields,
3343 2,
3344 0,
3345 0,
3346 &ahal_validate,
3347 },
3348
3349 {
3350 /* Q_DHAL - DELETE_HOSTALIAS */
3351 "delete_hostalias",
3352 "dhal",
3353 DELETE,
3354 "a",
03c05291 3355 HOSTALIAS_TABLE,
a66a2204 3356 (char *)0,
3357 ghal_fields,
3358 0,
03c05291 3359 "name = UPPER('%s') AND mach_id = %d",
a66a2204 3360 2,
3361 &dhal_validate,
d33e787c 3362 },
3363
3c1d412c 3364 {
3365 /* Q_GSNT - GET_SUBNET */
3366 "get_subnet",
3367 "gsnt",
3368 RETRIEVE,
3369 "s",
03c05291 3370 SUBNET_TABLE,
3371 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
3c1d412c 3372 gsnt_fields,
bd8c26ff 3373 12,
03c05291 3374 "name LIKE '%s' ESCAPE '*' and snet_id != 0",
3c1d412c 3375 1,
3376 &gsnt_validate,
3377 },
3378
3379 {
3380 /* Q_ASNT - ADD_SUBNET */
3381 "add_subnet",
3382 "asnt",
3383 APPEND,
3384 "s",
03c05291 3385 SUBNET_TABLE,
5eaef520 3386 "INTO subnet (name, description, saddr, mask, low, high, prefix, owner_type, owner_id, snet_id) VALUES (UPPER('%s'), NVL('%s', CHR(0)), %s, %s, %s, %s, NVL('%s', CHR(0)), '%s', %d, %s)",
3c1d412c 3387 asnt_fields,
bd8c26ff 3388 9,
3c1d412c 3389 0,
3390 0,
3391 &asnt_validate,
3392 },
3393
3394 {
3395 /* Q_USNT - UPDATE_SUBNET */
3396 "update_subnet",
3397 "usnt",
3398 UPDATE,
3399 "s",
03c05291 3400 SUBNET_TABLE,
5eaef520 3401 "subnet SET name = UPPER('%s'), description = NVL('%s', CHR(0)), saddr = %s, mask = %s, low = %s, high = %s, prefix = NVL('%s', CHR(0)), owner_type = '%s', owner_id = %d",
3c1d412c 3402 usnt_fields,
bd8c26ff 3403 9,
3c1d412c 3404 "snet_id = %d",
3405 1,
3406 &usnt_validate,
3407 },
3408
3409 {
3410 /* Q_DSNT - DELETE_SUBNET */
3411 "delete_subnet",
3412 "dsnt",
3413 DELETE,
3414 "s",
03c05291 3415 SUBNET_TABLE,
3c1d412c 3416 (char *)0,
3417 dsnt_fields,
3418 0,
3419 "snet_id = %d",
3420 1,
3421 &dsnt_validate,
3422 },
3423
d33e787c 3424 {
3425 /* Q_GCLU - GET_CLUSTER */
3426 "get_cluster",
3427 "gclu",
3428 RETRIEVE,
3429 "c",
03c05291 3430 CLUSTER_TABLE,
3431 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
d33e787c 3432 gclu_fields,
3433 6,
03c05291 3434 "name LIKE '%s' ESCAPE '*' AND clu_id != 0",
d33e787c 3435 1,
99e09b48 3436 &VDwildsortf,
d33e787c 3437 },
3438
3439 {
45bf7573 3440 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
d33e787c 3441 "add_cluster",
3442 "aclu",
3443 APPEND,
3444 "c",
03c05291 3445 CLUSTER_TABLE,
5eaef520 3446 "INTO clusters (name, description, location, clu_id) VALUES ('%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s)",
d33e787c 3447 aclu_fields,
3448 3,
45bf7573 3449 0,
d33e787c 3450 0,
3451 &aclu_validate,
3452 },
3453
3454 {
3455 /* Q_UCLU - UPDATE_CLUSTER */
3456 "update_cluster",
3457 "uclu",
3458 UPDATE,
3459 "c",
03c05291 3460 CLUSTER_TABLE,
5eaef520 3461 "clusters SET name = '%s', description = NVL('%s', CHR(0)), location = NVL('%s', CHR(0))",
d33e787c 3462 uclu_fields,
3463 3,
4e5ec77f 3464 "clu_id = %d",
d33e787c 3465 1,
3466 &uclu_validate,
3467 },
3468
3469 {
3470 /* Q_DCLU - DELETE_CLUSTER */
3471 "delete_cluster",
3472 "dclu",
3473 DELETE,
3474 "c",
03c05291 3475 CLUSTER_TABLE,
d33e787c 3476 (char *)0,
3477 dclu_fields,
3478 0,
4e5ec77f 3479 "clu_id = %d",
d33e787c 3480 1,
3481 &dclu_validate,
3482 },
3483
3484 {
5eaef520 3485 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
d33e787c 3486 "get_machine_to_cluster_map",
3487 "gmcm",
3488 RETRIEVE,
0c345c78 3489 "mcm",
03c05291 3490 MCMAP_TABLE,
3491 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
d33e787c 3492 gmcm_fields,
3493 2,
0c345c78 3494 "m.name LIKE '%s' ESCAPE '*' AND c.name LIKE '%s' ESCAPE '*' AND mcm.clu_id = c.clu_id AND mcm.mach_id = m.mach_id",
d33e787c 3495 2,
5eaef520 3496 &gmcm_validate,
d33e787c 3497 },
5eaef520 3498
d33e787c 3499 {
3500 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3501 "add_machine_to_cluster",
3502 "amtc",
3503 APPEND,
0c345c78 3504 "mcm",
03c05291 3505 MCMAP_TABLE,
4e5ec77f 3506 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
d33e787c 3507 gmcm_fields,
3508 2,
3509 0,
3510 0,
3511 &amtc_validate,
3512 },
3513
3514 {
3515 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3516 "delete_machine_from_cluster",
3517 "dmfc",
3518 DELETE,
0c345c78 3519 "mcm",
03c05291 3520 MCMAP_TABLE,
d33e787c 3521 0,
3522 gmcm_fields,
3523 0,
4e5ec77f 3524 "mach_id = %d AND clu_id = %d",
d33e787c 3525 2,
3526 &amtc_validate,
3527 },
3528
3529 {
68dd808d 3530 /* Q_GCLD - GET_CLUSTER_DATA */
d33e787c 3531 "get_cluster_data",
3532 "gcld",
3533 RETRIEVE,
d33e787c 3534 "svc",
03c05291 3535 SVC_TABLE,
3536 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
d33e787c 3537 gcld_fields,
3538 3,
0c345c78 3539 "c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
d33e787c 3540 2,
99e09b48 3541 &VDwild2sort2,
d33e787c 3542 },
3543
3544 {
3545 /* Q_ACLD - ADD_CLUSTER_DATA */
3546 "add_cluster_data",
3547 "acld",
3548 APPEND,
0c345c78 3549 "svc",
03c05291 3550 SVC_TABLE,
5eaef520 3551 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d, '%s', '%s')",
88343c5e 3552 acld_fields,
d33e787c 3553 3,
3554 (char *)0,
3555 0,
3556 &acld_validate,
3557 },
3558
3559 {
3560 /* Q_DCLD - DELETE_CLUSTER_DATA */
3561 "delete_cluster_data",
3562 "dcld",
3563 DELETE,
0c345c78 3564 "svc",
03c05291 3565 SVC_TABLE,
d33e787c 3566 (char *)0,
88343c5e 3567 acld_fields,
d33e787c 3568 0,
5eaef520 3569 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
d33e787c 3570 3,
99e09b48 3571 &dcld_validate,
d33e787c 3572 },
3573
03c05291 3574 {
3575 /* Q_GLIN - GET_LIST_INFO */
3576 "get_list_info",
3577 "glin",
3578 RETRIEVE,
3579 0,
3580 LIST_TABLE,
3581 0,
3582 glin_fields,
3583 13,
3584 0,
5eaef520 3585 1,
3586 &glin_validate,
03c05291 3587 },
5eaef520 3588
03c05291 3589 {
3590 /* Q_EXLN - EXPAND_LIST_NAMES */
3591 "expand_list_names",
3592 "exln",
3593 RETRIEVE,
3594 "l",
3595 LIST_TABLE,
3596 "name FROM list",
3597 glin_fields,
3598 1,
3599 "name LIKE '%s' ESCAPE '*' AND list_id != 0",
3600 1,
3601 &VDwild0,
3602 },
5eaef520 3603
03c05291 3604 {
3605 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
3606 "add_list",
3607 "alis",
3608 APPEND,
3609 "l",
5eaef520 3610 LIST_TABLE,
3611 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, acl_type, acl_id, description, list_id) VALUES ('%s', %s, %s, %s, %s, %s, %s, '%s', %d, NVL('%s', CHR(0)), %s)",
03c05291 3612 alis_fields,
3613 10,
3614 0,
3615 0,
3616 &alis_validate,
3617 },
3618
3619 {
3620 /* Q_ULIS - UPDATE_LIST */
3621 "update_list",
3622 "ulis",
3623 UPDATE,
3624 "l",
3625 LIST_TABLE,
5eaef520 3626 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, acl_type = '%s', acl_id = %d, description = NVL('%s', CHR(0))",
03c05291 3627 ulis_fields,
3628 10,
3629 "list_id = %d",
3630 1,
3631 &ulis_validate,
3632 },
3633
3634 {
3635 /* Q_DLIS - DELETE_LIST */
3636 "delete_list",
3637 "dlis",
3638 DELETE,
3639 "l",
3640 LIST_TABLE,
3641 (char *)0,
3642 dlis_fields,
3643 0,
3644 "list_id = %d",
3645 1,
3646 &dlis_validate,
3647 },
3648
3649 {
3650 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3651 "add_member_to_list",
3652 "amtl",
3653 APPEND,
3654 0,
3655 IMEMBERS_TABLE,
3656 0,
3657 amtl_fields,
3658 3,
3659 (char *)0,
3660 0,
3661 &amtl_validate,
3662 },
3663
3664 {
3665 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3666 "delete_member_from_list",
3667 "dmfl",
3668 DELETE,
3669 0,
3670 IMEMBERS_TABLE,
3671 (char *)0,
3672 amtl_fields,
3673 0,
3674 0,
3675 3,
3676 &dmfl_validate,
3677 },
3678
3679 {
3680 /* Q_GAUS - GET_ACE_USE */
3681 "get_ace_use",
3682 "gaus",
3683 RETRIEVE,
3684 0,
3685 0,
3686 0,
3687 gaus_fields,
3688 2,
3689 0,
3690 2,
3691 &gaus_validate,
3692 },
3693
3694 {
3695 /* Q_QGLI - QUALIFIED_GET_LISTS */
3696 "qualified_get_lists",
3697 "qgli",
3698 RETRIEVE,
3699 0,
3700 LIST_TABLE,
3701 0,
3702 qgli_fields,
3703 1,
3704 0,
3705 5,
3706 &qgli_validate,
3707 },
3708
3709 {
3710 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3711 "get_members_of_list",
3712 "gmol",
3713 RETRIEVE,
3714 (char *)0,
3715 IMEMBERS_TABLE,
3716 (char *)0,
3717 gmol_fields,
3718 2,
3719 (char *)0,
3720 1,
3721 &gmol_validate,
3722 },
3723
3724 {
3725 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
3726 "get_end_members_of_list",
3727 "geml",
3728 RETRIEVE,
3729 (char *)0,
3730 IMEMBERS_TABLE,
3731 (char *)0,
3732 gmol_fields,
fd8d2149 3733 2,
03c05291 3734 (char *)0,
3735 1,
3736 &geml_validate,
3737 },
5eaef520 3738
03c05291 3739 {
3740 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3741 "get_lists_of_member",
3742 "glom",
3743 RETRIEVE,
3744 0,
3745 IMEMBERS_TABLE,
3746 0,
3747 glom_fields,
3748 6,
3749 0,
3750 2,
3751 &glom_validate,
3752 },
3753
3754 {
3755 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3756 "count_members_of_list",
3757 "cmol",
3758 RETRIEVE,
3759 0,
3760 IMEMBERS_TABLE,
3761 0,
3762 cmol_fields,
3763 1,
3764 0,
3765 1,
3766 &cmol_validate,
3767 },
3768
d33e787c 3769 {
3770 /* Q_GSIN - GET_SERVER_INFO */
3771 "get_server_info",
3772 "gsin",
3773 RETRIEVE,
3774 "s",
03c05291 3775 SERVERS_TABLE,
3776 "name, update_int, target_file, script, dfgen, dfcheck, type, enable, inprogress, harderror, errmsg, acl_type, acl_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM servers",
d33e787c 3777 gsin_fields,
7ac4c1b1 3778 16,
03c05291 3779 "name LIKE '%s' ESCAPE '*'",
d33e787c 3780 1,
3781 &gsin_validate,
3782 },
3783
3784 {
3785 /* Q_QGSV - QUALIFIED_GET_SERVER */
3786 "qualified_get_server",
3787 "qgsv",
3788 RETRIEVE,
3789 0,
03c05291 3790 SERVERS_TABLE,
d33e787c 3791 0,
3792 qgsv_fields,
3793 1,
3794 0,
3795 3,
3796 &qgsv_validate,
3797 },
3798
3799 {
3800 /* Q_ASIN - ADD_SERVER_INFO */
3801 "add_server_info",
3802 "asin",
3803 APPEND,
3804 "s",
03c05291 3805 SERVERS_TABLE,
5eaef520 3806 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'), %s, '%s', '%s', '%s', %s, '%s', %d)",
d33e787c 3807 asin_fields,
3808 8,
3809 (char *)0,
3810 0,
3811 &asin_validate,
3812 },
3813
3814 {
3815 /* Q_USIN - UPDATE_SERVER_INFO */
3816 "update_server_info",
3817 "usin",
3818 UPDATE,
3819 "s",
03c05291 3820 SERVERS_TABLE,
4e5ec77f 3821 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
d33e787c 3822 asin_fields,
3823 7,
03c05291 3824 "name = UPPER('%s')",
d33e787c 3825 1,
3826 &asin_validate,
3827 },
3828
3829 {
3830 /* Q_RSVE - RESET_SERVER_ERROR */
3831 "reset_server_error",
3832 "rsve",
3833 UPDATE,
3834 "s",
03c05291 3835 SERVERS_TABLE,
4e5ec77f 3836 "servers SET harderror = 0, dfcheck = dfgen",
d33e787c 3837 dsin_fields,
3838 0,
03c05291 3839 "name = UPPER('%s')",
d33e787c 3840 1,
3841 &rsve_validate,
3842 },
3843
3844 {
3845 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3846 "set_server_internal_flags",
3847 "ssif",
3848 UPDATE,
3849 "s",
03c05291 3850 SERVERS_TABLE,
5eaef520 3851 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s', CHR(0))",
d33e787c 3852 ssif_fields,
7ac4c1b1 3853 5,
03c05291 3854 "name = UPPER('%s')",
d33e787c 3855 1,
3856 &ssif_validate,
3857 },
3858
3859 {
3860 /* Q_DSIN - DELETE_SERVER_INFO */
3861 "delete_server_info",
3862 "dsin",
3863 DELETE,
3864 "s",
03c05291 3865 SERVERS_TABLE,
d33e787c 3866 (char *)0,
3867 dsin_fields,
3868 0,
03c05291 3869 "name = UPPER('%s')",
d33e787c 3870 1,
3871 &dsin_validate,
3872 },
3873
3874 {
5eaef520 3875 /* Q_GSHI - GET_SERVER_HOST_INFO */
d33e787c 3876 "get_server_host_info",
3877 "gshi",
3878 RETRIEVE,
3879 "sh",
03c05291 3880 SERVERHOSTS_TABLE,
3881 "sh.service, m.name, sh.enable, sh.override, sh.success, sh.inprogress, sh.hosterror, sh.hosterrmsg, sh.ltt, sh.lts, sh.value1, sh.value2, sh.value3, TO_CHAR(sh.modtime, 'DD-mon-YYYY HH24:MI:SS'), sh.modby, sh.modwith FROM serverhosts sh, machine m",
d33e787c 3882 gshi_fields,
3883 16,
99e09b48 3884 "sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
d33e787c 3885 2,
3886 &gshi_validate,
3887 },
3888
3889 {
135dcb80 3890 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
d33e787c 3891 "qualified_get_server_host",
3892 "qgsh",
3893 RETRIEVE,
135dcb80 3894 0,
03c05291 3895 SERVERHOSTS_TABLE,
d33e787c 3896 0,
3897 qgsh_fields,
3898 2,
3899 0,
3900 6,
3901 &qgsh_validate,
3902 },
3903
3904 {
3905 /* Q_ASHI - ADD_SERVER_HOST_INFO */
3906 "add_server_host_info",
3907 "ashi",
3908 APPEND,
3909 "sh",
03c05291 3910 SERVERHOSTS_TABLE,
5eaef520 3911 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s', CHR(0)))",
d33e787c 3912 ashi_fields,
3913 6,
3914 (char *)0,
3915 0,
3916 &ashi_validate,
3917 },
3918
3919 {
3920 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
3921 "update_server_host_info",
3922 "ushi",
3923 UPDATE,
3924 "sh",
03c05291 3925 SERVERHOSTS_TABLE,
5eaef520 3926 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s', CHR(0))",
d33e787c 3927 ashi_fields,
3928 4,
03c05291 3929 "service = UPPER('%s') AND mach_id = %d",
d33e787c 3930 2,
3931 &ashi_validate,
3932 },
3933
3934 {
3935 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
3936 "reset_server_host_error",
3937 "rshe",
3938 UPDATE,
3939 "sh",
03c05291 3940 SERVERHOSTS_TABLE,
4e5ec77f 3941 "serverhosts SET hosterror = 0",
d33e787c 3942 dshi_fields,
3943 0,
03c05291 3944 "service = UPPER('%s') AND mach_id = %d",
d33e787c 3945 2,
3946 &rshe_validate,
3947 },
3948
3949 {
3950 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
3951 "set_server_host_override",
3952 "ssho",
3953 UPDATE,
3954 "sh",
03c05291 3955 SERVERHOSTS_TABLE,
4e5ec77f 3956 "serverhosts SET override = 1",
d33e787c 3957 dshi_fields,
3958 0,
03c05291 3959 "service = UPPER('%s') AND mach_id = %d",
d33e787c 3960 2,
3961 &ssho_validate,
3962 },
3963
3964 {
e41960ac 3965 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
d33e787c 3966 "set_server_host_internal",
3967 "sshi",
3968 UPDATE,
7ac4c1b1 3969 "s",
03c05291 3970 SERVERHOSTS_TABLE,
5eaef520 3971 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s', CHR(0)), ltt = %s, lts = %s",
d33e787c 3972 sshi_fields,
3973 7,
5eaef520 3974 "service = UPPER('%s') AND mach_id = %d",
d33e787c 3975 2,
3976 &sshi_validate,
3977 },
3978
3979 {
03c05291 3980 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
3981 "delete_server_host_info",
3982 "dshi",
d33e787c 3983 DELETE,
03c05291 3984 "sh",
3985 SERVERHOSTS_TABLE,
3986 (char *)0,
3987 dshi_fields,
d33e787c 3988 0,
03c05291 3989 "service = UPPER('%s') AND mach_id = %d",
3990 2,
3991 &dshi_validate,
d33e787c 3992 },
3993
3994 {
5eaef520 3995 /* Q_GSLO - GET_SERVER_LOCATIONS */
d33e787c 3996 "get_server_locations",
3997 "gslo",
3998 RETRIEVE,
3999 "sh",
03c05291 4000 SERVERHOSTS_TABLE,
4001 "sh.service, m.name FROM serverhosts sh, machine m",
d33e787c 4002 gslo_fields,
4003 2,
99e09b48 4004 "sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
d33e787c 4005 1,
99e09b48 4006 &VDupwild0,
d33e787c 4007 },
4008
4009 {
5eaef520 4010 /* Q_GFSL - GET_FILESYS_BY_LABEL */
d33e787c 4011 "get_filesys_by_label",
4012 "gfsl",
4013 RETRIEVE,
4014 "fs",
03c05291 4015 FILESYS_TABLE,
4016 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
d33e787c 4017 gfsl_fields,
4018 14,
e41960ac 4019 "fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 4020 1,
99e09b48 4021 &VDwildsortf,
d33e787c 4022 },
4023
4024 {
5eaef520 4025 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
d33e787c 4026 "get_filesys_by_machine",
4027 "gfsm",
4028 RETRIEVE,
4029 "fs",
03c05291 4030 FILESYS_TABLE,
4031 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
d33e787c 4032 gfsm_fields,
4033 14,
4e5ec77f 4034 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 4035 1,
4036 &gfsm_validate,
4037 },
4038
88343c5e 4039 {
5eaef520 4040 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
88343c5e 4041 "get_filesys_by_nfsphys",
4042 "gfsn",
4043 RETRIEVE,
4044 "fs",
03c05291 4045 FILESYS_TABLE,
4046 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l, nfsphys np",
88343c5e 4047 gfsn_fields,
4048 14,
5eaef520 4049 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id AND np.nfsphys_id = fs.phys_id AND np.dir LIKE '%s' ESCAPE '*' AND fs.type = 'NFS'",
88343c5e 4050 2,
99e09b48 4051 &gfsn_validate,
88343c5e 4052 },
4053
d33e787c 4054 {
5eaef520 4055 /* Q_GFSG - GET_FILESYS_BY_GROUP */
d33e787c 4056 "get_filesys_by_group",
4057 "gfsg",
4058 RETRIEVE,
4059 "fs",
03c05291 4060 FILESYS_TABLE,
4061 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
d33e787c 4062 gfsg_fields,
4063 14,
4e5ec77f 4064 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 4065 1,
4066 &gfsg_validate,
4067 },
4068
4ffa124a 4069 {
76f86976 4070 /* Q_GFSP - GET_FILESYS_BY_PATH */
4ffa124a 4071 "get_filesys_by_path",
4072 "gfsp",
4073 RETRIEVE,
4074 "fs",
03c05291 4075 FILESYS_TABLE,
4076 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
4ffa124a 4077 gfsp_fields,
4078 14,
76f86976 4079 "fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4ffa124a 4080 1,
76f86976 4081 &VDwildsortf,
4ffa124a 4082 },
5eaef520 4083
d33e787c 4084 {
45bf7573 4085 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
d33e787c 4086 "add_filesys",
4087 "afil",
4088 APPEND,
4089 "fs",
03c05291 4090 FILESYS_TABLE,
5eaef520 4091 "INTO filesys (label, type, mach_id, name, mount, rwaccess, comments, owner, owners, createflg, lockertype, filsys_id) VALUES ('%s', '%s', %d, NVL('%s', CHR(0)), '%s', '%s', NVL('%s', CHR(0)), %d, %d, %s, '%s', %s)",
d33e787c 4092 afil_fields,
4093 11,
45bf7573 4094 0,
d33e787c 4095 0,
4096 &afil_validate,
4097 },
4098
4099 {
4100 /* Q_UFIL - UPDATE_FILESYS */
4101 "update_filesys",
4102 "ufil",
4103 UPDATE,
4104 "fs",
03c05291 4105 FILESYS_TABLE,
5eaef520 4106 "filesys SET label = '%s', type = '%s', mach_id = %d, name = NVL('%s', CHR(0)), mount = '%s', rwaccess = '%s', comments = NVL('%s', CHR(0)), owner = %d, owners = %d, createflg = %s, lockertype = '%s'",
d33e787c 4107 ufil_fields,
4108 11,
4e5ec77f 4109 "filsys_id = %d",
d33e787c 4110 1,
5eaef520 4111 &ufil_validate,
d33e787c 4112 },
4113
4114 {
4115 /* Q_DFIL - DELETE_FILESYS */
4116 "delete_filesys",
4117 "dfil",
4118 DELETE,
4119 "fs",
03c05291 4120 FILESYS_TABLE,
d33e787c 4121 (char *)0,
4122 dfil_fields,
4123 0,
4e5ec77f 4124 "filsys_id = %d",
d33e787c 4125 1,
4126 &dfil_validate,
4127 },
4128
95127ba8 4129 {
5eaef520 4130 /* Q_GFGM - GET_FSGROUP_MEMBERS */
95127ba8 4131 "get_fsgroup_members",
4132 "gfgm",
4133 RETRIEVE,
4134 "fg",
03c05291 4135 FSGROUP_TABLE,
4136 "fs.label, fg.key FROM fsgroup fg, filesys fs",
95127ba8 4137 gfgm_fields,
4138 2,
4e5ec77f 4139 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
95127ba8 4140 1,
4141 &gfgm_validate,
4142 },
4143
4144 {
76f86976 4145 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
95127ba8 4146 "add_filesys_to_fsgroup",
4147 "aftg",
4148 APPEND,
4149 "fg",
03c05291 4150 FSGROUP_TABLE,
5eaef520 4151 "INTO fsgroup (group_id, filsys_id, key) VALUES (%d, %d, '%s')",
95127ba8 4152 gfgm_fields,
76f86976 4153 3,
99e09b48 4154 (char *)0,
76f86976 4155 0,
95127ba8 4156 &aftg_validate,
4157 },
4158
4159 {
4160 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
4161 "remove_filesys_from_fsgroup",
4162 "rffg",
4163 DELETE,
4164 "fg",
03c05291 4165 FSGROUP_TABLE,
95127ba8 4166 (char *)0,
4167 gfgm_fields,
4168 0,
4e5ec77f 4169 "group_id = %d AND filsys_id = %d",
95127ba8 4170 2,
4171 &aftg_validate,
4172 },
4173
d33e787c 4174 {
5eaef520 4175 /* Q_GANF - GET_ALL_NFSPHYS */
d33e787c 4176 "get_all_nfsphys",
4177 "ganf",
4178 RETRIEVE,
4179 "np",
03c05291 4180 NFSPHYS_TABLE,
4181 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
d33e787c 4182 ganf_fields,
4183 9,
4e5ec77f 4184 "m.mach_id = np.mach_id",
d33e787c 4185 0,
4186 &VDsortf,
4187 },
4188
4189 {
5eaef520 4190 /* Q_GNFP - GET_NFSPHYS */
d33e787c 4191 "get_nfsphys",
4192 "gnfp",
4193 RETRIEVE,
4194 "np",
03c05291 4195 NFSPHYS_TABLE,
4196 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
d33e787c 4197 gnfp_fields,
4198 9,
5eaef520 4199 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
d33e787c 4200 2,
4201 &gnfp_validate,
4202 },
4203
4204 {
45bf7573 4205 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
d33e787c 4206 "add_nfsphys",
4207 "anfp",
4208 APPEND,
4209 "np",
03c05291 4210 NFSPHYS_TABLE,
5eaef520 4211 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s', CHR(0)), %s, %s, %s, %s)",
d33e787c 4212 ganf_fields,
4213 6,
45bf7573 4214 0,
d33e787c 4215 0,
4216 &anfp_validate,
4217 },
4218
4219 {
4220 /* Q_UNFP - UPDATE_NFSPHYS */
4221 "update_nfsphys",
4222 "unfp",
4223 UPDATE,
4224 "np",
03c05291 4225 NFSPHYS_TABLE,
5eaef520 4226 "nfsphys SET device = NVL('%s', CHR(0)), status = %s, allocated = %s, partsize = %s",
135dcb80 4227 ganf_fields,
d33e787c 4228 4,
5eaef520 4229 "mach_id = %d AND dir = '%s'",
d33e787c 4230 2,
45bf7573 4231 &unfp_validate,
d33e787c 4232 },
4233
4234 {
4235 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
4236 "adjust_nfsphys_allocation",
4237 "ajnf",
4238 UPDATE,
4239 "np",
03c05291 4240 NFSPHYS_TABLE,
4e5ec77f 4241 "nfsphys SET allocated = allocated + %s",
99e09b48 4242 ajnf_fields,
d33e787c 4243 1,
4e5ec77f 4244 "mach_id = %d AND dir = '%s'",
d33e787c 4245 2,
45bf7573 4246 &unfp_validate,
d33e787c 4247 },
4248
4249 {
4250 /* Q_DNFP - DELETE_NFSPHYS */
4251 "delete_nfsphys",
4252 "dnfp",
4253 DELETE,
4254 "np",
03c05291 4255 NFSPHYS_TABLE,
d33e787c 4256 (char *)0,
4257 dnfp_fields,
4258 0,
4e5ec77f 4259 "mach_id = %d AND dir = '%s'",
d33e787c 4260 2,
4261 &dnfp_validate,
4262 },
4263
368be132 4264 {
5eaef520 4265 /* Q_GQOT - GET_QUOTA */
368be132 4266 "get_quota",
4267 "gqot",
4268 RETRIEVE,
4269 "q",
03c05291 4270 QUOTA_TABLE,
4271 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
368be132 4272 gqot_fields,
4273 9,
e41960ac 4274 "fs.label LIKE '%s' ESCAPE '*' AND q.type = '%s' AND q.entity_id = %d AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
368be132 4275 3,
4276 &gqot_validate,
4277 },
4278
4279 {
5eaef520 4280 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
368be132 4281 "get_quota_by_filesys",
4282 "gqbf",
4283 RETRIEVE,
4284 "q",
03c05291 4285 QUOTA_TABLE,
4286 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
368be132 4287 gqbf_fields,
4288 9,
e41960ac 4289 "fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
368be132 4290 1,
4291 &gqbf_validate,
4292 },
4293
4294 {
135dcb80 4295 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
368be132 4296 "add_quota",
4297 "aqot",
4298 APPEND,
135dcb80 4299 0,
03c05291 4300 QUOTA_TABLE,
135dcb80 4301 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
368be132 4302 aqot_fields,
135dcb80 4303 4,
99e09b48 4304 (char *)0,
76f86976 4305 0,
368be132 4306 &aqot_validate,
4307 },
4308
4309 {
4310 /* Q_UQOT - UPDATE_QUOTA */
4311 "update_quota",
4312 "uqot",
4313 UPDATE,
135dcb80 4314 0,
03c05291 4315 QUOTA_TABLE,
4e5ec77f 4316 "quota SET quota = %s",
368be132 4317 aqot_fields,
4318 1,
135dcb80 4319 0,
368be132 4320 3,
4321 &uqot_validate,
4322 },
4323
4324 {
4325 /* Q_DQOT - DELETE_QUOTA */
4326 "delete_quota",
4327 "dqot",
4328 DELETE,
135dcb80 4329 0,
03c05291 4330 QUOTA_TABLE,
368be132 4331 (char *)0,
4332 aqot_fields,
4333 0,
135dcb80 4334 0,
368be132 4335 3,
4336 &dqot_validate,
4337 },
4338
d33e787c 4339 {
5eaef520 4340 /* Q_GNFQ - GET_NFS_QUOTAS */
88343c5e 4341 "get_nfs_quota",
d33e787c 4342 "gnfq",
4343 RETRIEVE,
368be132 4344 "q",
03c05291 4345 QUOTA_TABLE,
4346 "fs.label, u.login, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, users u, machine m",
d33e787c 4347 gnfq_fields,
4348 8,
99e09b48 4349 "fs.label LIKE '%s' ESCAPE '*' AND q.type = 'USER' AND q.entity_id = u.users_id AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id AND u.login = '%s'",
88343c5e 4350 2,
d33e787c 4351 &gnfq_validate,
4352 },
4353
4354 {
5eaef520 4355 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
d33e787c 4356 "get_nfs_quotas_by_partition",
4357 "gnqp",
4358 RETRIEVE,
368be132 4359 "q",
03c05291 4360 QUOTA_TABLE,
4361 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
d33e787c 4362 gnqp_fields,
4363 5,
99e09b48 4364 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND q.phys_id = np.nfsphys_id AND fs.filsys_id = q.filsys_id AND q.type = 'USER' AND u.users_id = q.entity_id AND m.mach_id = np.mach_id",
d33e787c 4365 2,
99e09b48 4366 &gnqp_validate,
d33e787c 4367 },
4368
d33e787c 4369 {
135dcb80 4370 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
d33e787c 4371 "add_nfs_quota",
4372 "anfq",
4373 APPEND,
135dcb80 4374 0,
03c05291 4375 QUOTA_TABLE,
135dcb80 4376 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
d33e787c 4377 anfq_fields,
135dcb80 4378 3,
99e09b48 4379 (char *)0,
76f86976 4380 0,
d33e787c 4381 &anfq_validate,
4382 },
4383
4384 {
5eaef520 4385 /* Q_UNFQ - UPDATE_NFS_QUOTA */
d33e787c 4386 "update_nfs_quota",
4387 "unfq",
4388 UPDATE,
135dcb80 4389 0,
03c05291 4390 QUOTA_TABLE,
4e5ec77f 4391 "quota SET quota = %s",
d33e787c 4392 anfq_fields,
4393 1,
135dcb80 4394 0,
d33e787c 4395 2,
4396 &unfq_validate,
4397 },
4398
4399 {
4400 /* Q_DNFQ - DELETE_NFS_QUOTA */
4401 "delete_nfs_quota",
4402 "dnfq",
4403 DELETE,
135dcb80 4404 0,
03c05291 4405 QUOTA_TABLE,
d33e787c 4406 (char *)0,
4407 anfq_fields,
4408 0,
135dcb80 4409 0,
d33e787c 4410 2,
4411 &dnfq_validate,
4412 },
4413
d33e787c 4414 {
4415 /* Q_GZCL - GET_ZEPHYR_CLASS */
4416 "get_zephyr_class",
4417 "gzcl",
4418 RETRIEVE,
4419 "z",
03c05291 4420 ZEPHYR_TABLE,
4421 "class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM zephyr",
d33e787c 4422 gzcl_fields,
4423 12,
03c05291 4424 "class LIKE '%s' ESCAPE '*'",
d33e787c 4425 1,
4426 &gzcl_validate,
03c05291 4427 },
d33e787c 4428
4429 {
4430 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4431 "add_zephyr_class",
4432 "azcl",
4433 APPEND,
4434 "z",
03c05291 4435 ZEPHYR_TABLE,
5eaef520 4436 "INTO zephyr (class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id) VALUES ('%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d)",
d33e787c 4437 azcl_fields,
4438 9,
4439 0,
4440 0,
4441 &azcl_validate,
5eaef520 4442 },
d33e787c 4443
4444 {
4445 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4446 "update_zephyr_class",
4447 "uzcl",
4448 UPDATE,
4449 "z",
03c05291 4450 ZEPHYR_TABLE,
135dcb80 4451 "zephyr SET class = '%s', xmt_type = '%s', xmt_id = %d, sub_type = '%s', sub_id = %d, iws_type = '%s', iws_id = %d, iui_type = '%s', iui_id = %d",
d33e787c 4452 uzcl_fields,
4453 9,
99e09b48 4454 "class = '%s'",
d33e787c 4455 1,
4456 &uzcl_validate,
5eaef520 4457 },
d33e787c 4458
4459 {
4460 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4461 "delete_zephyr_class",
4462 "dzcl",
4463 DELETE,
4464 "z",
03c05291 4465 ZEPHYR_TABLE,
d33e787c 4466 0,
4467 uzcl_fields,
4468 0,
99e09b48 4469 "class = '%s'",
d33e787c 4470 1,
4471 &dzcl_validate,
5eaef520 4472 },
fd5b2340 4473
03c05291 4474 {
5eaef520 4475 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
03c05291 4476 "get_server_host_access",
4477 "gsha",
4478 RETRIEVE,
4479 "ha",
4480 HOSTACCESS_TABLE,
4481 "m.name, ha.acl_type, ha.acl_id, TO_CHAR(ha.modtime, 'DD-mon-YYYY HH24:MI:SS'), ha.modby, ha.modwith FROM hostaccess ha, machine m",
4482 gsha_fields,
4483 6,
4484 "m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
4485 1,
4486 &gsha_validate,
4487 },
4488
4489 {
4490 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
4491 "add_server_host_access",
4492 "asha",
4493 APPEND,
4494 "ha",
4495 HOSTACCESS_TABLE,
5eaef520 4496 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d, '%s', %d)",
03c05291 4497 asha_fields,
4498 3,
4499 0,
4500 0,
4501 &asha_validate,
4502 },
4503
4504 {
4505 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
4506 "update_server_host_access",
4507 "usha",
4508 UPDATE,
4509 "ha",
4510 HOSTACCESS_TABLE,
4511 "hostaccess SET acl_type = '%s', acl_id = %d",
4512 asha_fields,
4513 2,
4514 "mach_id = %d",
4515 1,
4516 &asha_validate,
4517 },
4518
4519 {
4520 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
4521 "delete_server_host_access",
4522 "dsha",
4523 DELETE,
4524 "ha",
4525 HOSTACCESS_TABLE,
4526 0,
4527 asha_fields,
4528 0,
4529 "mach_id = %d",
4530 1,
4531 &VDmach,
4532 },
4533
d33e787c 4534 {
4535 /* Q_GSVC - GET_SERVICE */
4536 "get_service",
4537 "gsvc",
4538 RETRIEVE,
0c345c78 4539 "ss",
03c05291 4540 SERVICES_TABLE,
4541 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
fd5b2340 4542 gsvc_fields,
d33e787c 4543 7,
03c05291 4544 "name LIKE '%s' ESCAPE '*'",
fd5b2340 4545 1,
99e09b48 4546 &VDwildsortf,
d33e787c 4547 },
4548
4549 {
4550 /* Q_ASVC - ADD_SERVICE */
4551 "add_service",
4552 "asvc",
4553 APPEND,
0c345c78 4554 "ss",
03c05291 4555 SERVICES_TABLE,
5eaef520 4556 "INTO services (name, protocol, port, description) VALUES ('%s', '%s', %s, NVL('%s', CHR(0)))",
fd5b2340 4557 asvc_fields,
d33e787c 4558 4,
4559 (char *)0,
4560 0,
4561 &asvc_validate,
4562 },
4563
4564 {
4565 /* Q_DSVC - DELETE_SERVICE */
4566 "delete_service",
4567 "dsvc",
4568 DELETE,
0c345c78 4569 "ss",
03c05291 4570 SERVICES_TABLE,
d33e787c 4571 0,
fd5b2340 4572 asvc_fields,
d33e787c 4573 0,
99e09b48 4574 "name = '%s'",
d33e787c 4575 1,
fd5b2340 4576 &asvc_validate,
d33e787c 4577 },
fd5b2340 4578
d33e787c 4579 {
5eaef520 4580 /* Q_GPCE - GET_PRINTCAP_ENTRY */
fd5b2340 4581 "get_printcap_entry",
4582 "gpce",
d33e787c 4583 RETRIEVE,
0c345c78 4584 "pc",
03c05291 4585 PRINTCAP_TABLE,
4586 "pc.name, m.name, pc.dir, pc.rp, pc.quotaserver, pc.auth, pc.price, pc.comments, TO_CHAR(pc.modtime, 'DD-mon-YYYY HH24:MI:SS'), pc.modby, pc.modwith FROM printcap pc, machine m",
fd5b2340 4587 gpce_fields,
4588 11,
0c345c78 4589 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
d33e787c 4590 1,
d4462d4f 4591 &gpce_validate,
d33e787c 4592 },
4593
4594 {
fd5b2340 4595 /* Q_APCE - ADD_PRINTCAP_ENTRY */
4596 "add_printcap_entry",
4597 "apce",
d33e787c 4598 APPEND,
0c345c78 4599 "pc",
03c05291 4600 PRINTCAP_TABLE,
5eaef520 4601 "INTO printcap (name, mach_id, dir, rp, quotaserver, auth, price, comments) VALUES ('%s', %d, '%s', '%s', %d, %s, %s, NVL('%s', CHR(0)))",
fd5b2340 4602 apce_fields,
4603 8,
d33e787c 4604 0,
4605 0,
fd5b2340 4606 &apce_validate,
4607 },
4608
4609 {
4610 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
4611 "delete_printcap_entry",
4612 "dpce",
4613 DELETE,
0c345c78 4614 "pc",
03c05291 4615 PRINTCAP_TABLE,
fd5b2340 4616 0,
4617 apce_fields,
4618 0,
99e09b48 4619 "name = '%s'",
fd5b2340 4620 1,
4621 &dpce_validate,
4622 },
4623
4624 {
4625 /* Q_GPCP - GET_PRINTCAP */
4626 "get_printcap",
4627 "gpcp",
4628 RETRIEVE,
0c345c78 4629 "pc",
03c05291 4630 PRINTCAP_TABLE,
4631 "pc.name, m.name, pc.dir, pc.rp, pc.comments, TO_CHAR(pc.modtime, 'DD-mon-YYYY HH24:MI:SS'), pc.modby, pc.modwith FROM printcap pc, machine m",
fd5b2340 4632 gpcp_fields,
4633 8,
0c345c78 4634 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
fd5b2340 4635 1,
99e09b48 4636 &VDwildsortf,
d33e787c 4637 },
4638
4639 {
4640 /* Q_DPCP - DELETE_PRINTCAP */
4641 "delete_printcap",
4642 "dpcp",
4643 DELETE,
0c345c78 4644 "pc",
03c05291 4645 PRINTCAP_TABLE,
d33e787c 4646 0,
fd5b2340 4647 apce_fields,
d33e787c 4648 0,
99e09b48 4649 "name = '%s'",
d33e787c 4650 1,
fd5b2340 4651 &dpce_validate,
d33e787c 4652 },
4653
012fc215 4654 {
4655 /* Q_GPDM - GET_PALLADIUM */
4656 "get_palladium",
4657 "gpdm",
4658 RETRIEVE,
0c345c78 4659 "pal",
03c05291 4660 PALLADIUM_TABLE,
4661 "pal.name, pal.identifier, m.name, TO_CHAR(pal.modtime, 'DD-mon-YYYY HH24:MI:SS'), pal.modby, pal.modwith FROM palladium pal, machine m",
012fc215 4662 gpdm_fields,
4663 6,
0c345c78 4664 "pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
012fc215 4665 1,
99e09b48 4666 &VDwildsortf,
012fc215 4667 },
4668
4669 {
4670 /* Q_APDM - ADD_PALLADIUM */
4671 "add_palladium",
4672 "apdm",
4673 APPEND,
0c345c78 4674 "pal",
03c05291 4675 PALLADIUM_TABLE,
5eaef520 4676 "INTO palladium (name, identifier, mach_id) VALUES ('%s', %s, %d)",
012fc215 4677 apdm_fields,
4678 3,
4679 0,
4680 0,
4681 &apdm_validate,
4682 },
4683
4684 {
4685 /* Q_DPDM - DELETE_PALLADIUM */
4686 "delete_palladium",
4687 "dpdm",
4688 DELETE,
0c345c78 4689 "pal",
03c05291 4690 PALLADIUM_TABLE,
012fc215 4691 0,
4692 apdm_fields,
4693 0,
99e09b48 4694 "name = '%s'",
012fc215 4695 1,
4696 &dpdm_validate,
4697 },
4698
d33e787c 4699 {
4700 /* Q_GALI - GET_ALIAS */
4701 "get_alias",
4702 "gali",
4703 RETRIEVE,
4704 "a",
03c05291 4705 ALIAS_TABLE,
4706 "name, type, trans FROM alias",
d33e787c 4707 gali_fields,
4708 3,
03c05291 4709 "name LIKE '%s' ESCAPE '*' AND type LIKE '%s' ESCAPE '*' AND trans LIKE '%s' ESCAPE '*'",
d33e787c 4710 3,
99e09b48 4711 &VDwild3sort1,
d33e787c 4712 },
4713
4714 {
4715 /* Q_AALI - ADD_ALIAS */
4716 "add_alias",
4717 "aali",
4718 APPEND,
4719 "a",
03c05291 4720 ALIAS_TABLE,
4e5ec77f 4721 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
d33e787c 4722 aali_fields,
4723 3,
4724 (char *)0,
4725 0,
4726 &aali_validate,
4727 },
4728
4729 {
4730 /* Q_DALI - DELETE_ALIAS */
4731 "delete_alias",
4732 "dali",
4733 DELETE,
4734 "a",
03c05291 4735 ALIAS_TABLE,
d33e787c 4736 (char *)0,
4737 aali_fields,
4738 0,
5eaef520 4739 "name = '%s' AND type = '%s' AND trans = '%s'",
d33e787c 4740 3,
4741 &dali_validate,
4742 },
4743
4744 {
4745 /* Q_GVAL - GET_VALUE */
4746 "get_value",
4747 "gval",
4748 RETRIEVE,
0c345c78 4749 "val",
03c05291 4750 NUMVALUES_TABLE,
4751 "value FROM numvalues",
d33e787c 4752 gval_fields,
4753 1,
03c05291 4754 "name = '%s'",
d33e787c 4755 1,
4756 &gval_validate,
4757 },
4758
4759 {
4760 /* Q_AVAL - ADD_VALUE */
4761 "add_value",
4762 "aval",
4763 APPEND,
0c345c78 4764 "val",
03c05291 4765 NUMVALUES_TABLE,
4e5ec77f 4766 "INTO numvalues (name, value) VALUES ('%s', %s)",
d33e787c 4767 aval_fields,
4768 2,
4769 (char *)0,
4770 0,
4771 &aval_validate,
4772 },
4773
4774 {
4775 /* Q_UVAL - UPDATE_VALUE */
4776 "update_value",
4777 "uval",
4778 UPDATE,
0c345c78 4779 "val",
03c05291 4780 NUMVALUES_TABLE,
4e5ec77f 4781 "numvalues SET value = %s",
d33e787c 4782 aval_fields,
4783 1,
99e09b48 4784 "name = '%s'",
d33e787c 4785 1,
4786 &aval_validate,
4787 },
4788
4789 {
4790 /* Q_DVAL - DELETE_VALUE */
4791 "delete_value",
4792 "dval",
4793 DELETE,
0c345c78 4794 "val",
03c05291 4795 NUMVALUES_TABLE,
d33e787c 4796 (char *)0,
4797 dval_fields,
4798 0,
99e09b48 4799 "name = '%s'",
d33e787c 4800 1,
4801 &aval_validate,
4802 },
4803
4804 {
4805 /* Q_GATS - GET_ALL_TABLE_STATS */
4806 "get_all_table_stats",
4807 "gats",
4808 RETRIEVE,
4809 "tbs",
03c05291 4810 TBLSTATS_TABLE,
4811 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
d33e787c 4812 gats_fields,
45bf7573 4813 5,
d33e787c 4814 (char *)0,
4815 0,
4816 0,
4817 },
4818
2962e9ec 4819 {
4820 /* Q__SDL - _SET_DEBUG_LEVEL */
4821 "_set_debug_level",
4822 "_sdl",
4823 UPDATE,
4824 (char *)0,
03c05291 4825 0,
2962e9ec 4826 (char *)0,
4827 _sdl_fields,
4828 1,
4829 (char *)0,
4830 0,
4831 &_sdl_validate,
4832 },
4833
d33e787c 4834};
4835
5eaef520 4836int QueryCount2 = (sizeof(Queries2) / sizeof(struct query));
This page took 0.935721 seconds and 5 git commands to generate.