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