]> andersk Git - moira.git/blame - server/queries2.c
Change MAXLISTDEPTH to 2048.
[moira.git] / server / queries2.c
CommitLineData
7ac48069 1/* $Id$
d33e787c 2 *
c44ddfa7 3 * This file defines the query dispatch table
d33e787c 4 *
7ac48069 5 * Copyright (C) 1987-1998 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"
d33e787c 12#include "query.h"
d33e787c 13
7ac48069 14#include "mr_et.h"
d33e787c 15
d33e787c 16/* VALOBJS
17 * These are commonly used validation objects, defined here so that they
18 * can be shared.
19 */
20
d33e787c 21static struct valobj VOuser0[] = {
e2b8245f 22 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
d33e787c 23};
24
25static struct valobj VOmach0[] = {
e2b8245f 26 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
d33e787c 27};
28
29static struct valobj VOclu0[] = {
e2b8245f 30 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
d33e787c 31};
32
d1b3a4bf 33static struct valobj VOsnet0[] = {
34 {V_ID, 0, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
35};
36
d33e787c 37static struct valobj VOlist0[] = {
e2b8245f 38 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
d33e787c 39};
40
d1b3a4bf 41static struct valobj VOfilesys0[] = {
42 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
43};
44
f802fd0d 45static struct valobj VOnum0[] = {
46 {V_NUM, 0},
d33e787c 47};
48
d33e787c 49/* Validations
50 * Commonly used validation records defined here so that they may
51 * be shared.
52 */
53
54static struct validate VDmach = { VOmach0, 1 };
263a36d4 55
29028043 56static struct validate VDfix_modby = {
57 0,
58 0,
0c345c78 59 0,
60 0,
61 0,
62 0,
63 0,
64 0,
65 followup_fix_modby,
d33e787c 66};
67
d33e787c 68/* Query data */
69
186dd63b 70static char *galo2_fields[] = {
e2b8245f 71 "login", "unix_uid", "shell", "last", "first", "middle",
d33e787c 72};
73
186dd63b 74static char *galo_fields[] = {
75 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
76};
77
78static char *gual2_fields[] = {
e2b8245f 79 "login",
80 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 81 "clearid", "class", "comments", "signature", "secure",
82 "modtime", "modby", "modwith",
4ffa124a 83};
0c345c78 84
186dd63b 85static char *gual_fields[] = {
86 "login",
87 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
88 "status", "clearid", "class", "comments", "signature", "secure",
89 "modtime", "modby", "modwith",
90};
91
92static char *gubl2_fields[] = {
e2b8245f 93 "login",
94 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 95 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 96};
97
186dd63b 98static char *gubl_fields[] = {
99 "login",
100 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
101 "status", "clearid", "class", "modtime", "modby", "modwith",
102};
103
5eaef520 104static struct validate gubl_validate =
d33e787c 105{
263a36d4 106 0,
107 0,
d33e787c 108 0,
109 0,
110 0,
111 0,
112 access_login,
113 0,
d55429b2 114 followup_fix_modby,
d33e787c 115};
116
186dd63b 117static char *guau2_fields[] = {
e2b8245f 118 "unix_uid",
119 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 120 "clearid", "class", "comments", "signature", "secure",
121 "modtime", "modby", "modwith",
4ffa124a 122};
0c345c78 123
186dd63b 124static char *guau_fields[] = {
125 "unix_uid",
126 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
127 "status", "clearid", "class", "comments", "signature", "secure",
128 "modtime", "modby", "modwith",
129};
130
131static char *guan2_fields[] = {
e2b8245f 132 "first", "last",
133 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 134 "clearid", "class", "comments", "signature", "secure",
135 "modtime", "modby", "modwith",
4ffa124a 136};
0c345c78 137
186dd63b 138static char *guan_fields[] = {
139 "first", "last",
140 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
141 "status", "clearid", "class", "comments", "signature", "secure",
142 "modtime", "modby", "modwith",
143};
144
5eaef520 145static struct validate guan_validate =
60452f41 146{
263a36d4 147 0,
148 0,
60452f41 149 0,
150 0,
151 0,
152 0,
153 0,
154 0,
d55429b2 155 followup_fix_modby,
60452f41 156};
157
186dd63b 158static char *guac2_fields[] = {
e2b8245f 159 "class",
160 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 161 "clearid", "class", "comments", "signature", "secure",
162 "modtime", "modby", "modwith",
4ffa124a 163};
0c345c78 164
186dd63b 165static char *guac_fields[] = {
166 "class",
167 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
168 "status", "clearid", "class", "comments", "signature", "secure",
169 "modtime", "modby", "modwith",
170};
171
172static char *guam2_fields[] = {
e2b8245f 173 "clearid",
174 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 175 "clearid", "class", "comments", "signature", "secure",
176 "modtime", "modby", "modwith",
4ffa124a 177};
0c345c78 178
186dd63b 179static char *guam_fields[] = {
180 "clearid",
181 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
182 "status", "clearid", "class", "comments", "signature", "secure",
183 "modtime", "modby", "modwith",
184};
185
186static char *gubu2_fields[] = {
e2b8245f 187 "unix_uid",
188 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 189 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 190};
191
186dd63b 192static char *gubu_fields[] = {
193 "unix_uid",
194 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
195 "status", "clearid", "class", "modtime", "modby", "modwith",
196};
197
5eaef520 198static struct validate gubu_validate =
f9f5c199 199{
f802fd0d 200 VOnum0,
201 1,
f9f5c199 202 0,
203 0,
204 0,
205 0,
206 access_login,
207 0,
208 followup_fix_modby,
209};
210
186dd63b 211static char *gubn2_fields[] = {
e2b8245f 212 "first", "last",
213 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 214 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 215};
216
186dd63b 217static char *gubn_fields[] = {
218 "first", "last",
219 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
220 "status", "clearid", "class", "modtime", "modby", "modwith",
221};
222
99e09b48 223static struct validate gubn_validate =
224{
263a36d4 225 0,
226 0,
0c345c78 227 0,
228 0,
229 0,
230 0,
231 0,
232 0,
233 followup_fix_modby,
99e09b48 234};
235
186dd63b 236static char *gubc2_fields[] = {
e2b8245f 237 "class",
238 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 239 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 240};
241
186dd63b 242static char *gubc_fields[] = {
243 "class",
244 "login", "unix_uid", "shell", "winconsoleshell", "last", "first", "middle",
245 "status", "clearid", "class", "modtime", "modby", "modwith",
246};
247
248static char *gubm2_fields[] = {
e2b8245f 249 "clearid",
250 "login", "unix_uid", "shell", "last", "first", "middle", "status",
8db06f75 251 "clearid", "class", "modtime", "modby", "modwith",
d33e787c 252};
253
186dd63b 254static char *gubm_fields[] = {
255 "clearid",
256 "login", "unix_uid", "shell", "winconsoleshell", "last", "first",
257 "middle", "status", "clearid", "class", "modtime", "modby", "modwith",
258};
259
260static char *auac2_fields[] = {
e2b8245f 261 "login", "unix_uid", "shell", "last", "first", "middle", "status",
262 "clearid", "class", "comments", "signature", "secure",
d33e787c 263};
264
186dd63b 265static char *auac_fields[] = {
266 "login", "unix_uid", "shell", "winconsoleshell", "last", "first",
267 "middle", "status", "clearid", "class", "comments", "signature", "secure",
268};
269
270static struct valobj auac2_valobj[] = {
e2b8245f 271 {V_CHAR, 0, USERS_TABLE, "login"},
f802fd0d 272 {V_NUM, 1},
e2b8245f 273 {V_CHAR, 2, USERS_TABLE, "shell"},
274 {V_CHAR, 3, USERS_TABLE, "last"},
275 {V_CHAR, 4, USERS_TABLE, "first"},
276 {V_CHAR, 5, USERS_TABLE, "middle"},
f802fd0d 277 {V_NUM, 6},
e2b8245f 278 {V_CHAR, 7, USERS_TABLE, "clearid"},
279 {V_TYPE, 8, 0, "class", 0, MR_BAD_CLASS},
03c05291 280 {V_ID, 9, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
9c45837e 281 {V_NUM, 11},
d33e787c 282};
283
186dd63b 284static struct valobj auac_valobj[] = {
285 {V_CHAR, 0, USERS_TABLE, "login"},
286 {V_NUM, 1},
287 {V_CHAR, 2, USERS_TABLE, "shell"},
288 {V_CHAR, 3, USERS_TABLE, "winconsoleshell"},
289 {V_CHAR, 4, USERS_TABLE, "last"},
290 {V_CHAR, 5, USERS_TABLE, "first"},
291 {V_CHAR, 6, USERS_TABLE, "middle"},
292 {V_NUM, 7},
293 {V_CHAR, 8, USERS_TABLE, "clearid"},
294 {V_TYPE, 9, 0, "class", 0, MR_BAD_CLASS},
295 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
296 {V_NUM, 12},
297};
298
299static struct validate auac2_validate = {
300 auac2_valobj,
301 11,
302 "login",
303 "login = '%s'",
304 1,
305 "users_id",
306 0,
307 setup_ausr,
308 followup_ausr,
309};
310
4ffa124a 311static struct validate auac_validate = {
312 auac_valobj,
186dd63b 313 12,
314 "login",
315 "login = '%s'",
316 1,
317 "users_id",
318 0,
319 setup_ausr,
320 followup_ausr,
321};
322
323static struct validate ausr2_validate = {
324 auac2_valobj,
325 9,
e2b8245f 326 "login",
03c05291 327 "login = '%s'",
4ffa124a 328 1,
e2b8245f 329 "users_id",
4ffa124a 330 0,
331 setup_ausr,
332 followup_ausr,
333};
0c345c78 334
d33e787c 335static struct validate ausr_validate = {
4ffa124a 336 auac_valobj,
186dd63b 337 10,
e2b8245f 338 "login",
03c05291 339 "login = '%s'",
d33e787c 340 1,
e2b8245f 341 "users_id",
d33e787c 342 0,
343 setup_ausr,
344 followup_ausr,
345};
346
347static char *rusr_fields[] = {
b4bfb4d1 348 "unix_uid", "login", "pobox_type"
03c05291 349};
d33e787c 350
ba408d23 351static struct valobj rusr_valobj[] = {
f802fd0d 352 {V_NUM, 0},
8bf97744 353 {V_CHAR, 1, USERS_TABLE, "login"},
ba408d23 354};
355
d33e787c 356static struct validate rusr_validate = {
ba408d23 357 rusr_valobj,
b4bfb4d1 358 2,
d33e787c 359 0,
360 0,
361 0,
362 0,
363 0,
364 register_user,
365 0,
366};
367
186dd63b 368static char *uuac2_fields[] = {
e2b8245f 369 "login",
370 "newlogin", "unix_uid", "shell", "last", "first", "middle", "status",
371 "clearid", "class", "comments", "signature", "secure",
d33e787c 372};
373
186dd63b 374static char *uuac_fields[] = {
375 "login",
376 "newlogin", "unix_uid", "shell", "winconsoleshell", "last", "first",
377 "middle", "status", "clearid", "class", "comments", "signature", "secure",
378};
379
380static struct valobj uuac2_valobj[] = {
e2b8245f 381 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
382 {V_RENAME, 1, USERS_TABLE, "login", "users_id", MR_NOT_UNIQUE},
f802fd0d 383 {V_NUM, 2},
e2b8245f 384 {V_CHAR, 3, USERS_TABLE, "shell"},
385 {V_CHAR, 4, USERS_TABLE, "first"},
386 {V_CHAR, 5, USERS_TABLE, "last"},
387 {V_CHAR, 6, USERS_TABLE, "middle"},
f802fd0d 388 {V_NUM, 7},
e2b8245f 389 {V_CHAR, 8, USERS_TABLE, "clearid"},
390 {V_TYPE, 9, 0, "class", 0, MR_BAD_CLASS},
03c05291 391 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
f802fd0d 392 {V_NUM, 12},
d33e787c 393};
186dd63b 394
395static struct valobj uuac_valobj[] = {
396 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
397 {V_RENAME, 1, USERS_TABLE, "login", "users_id", MR_NOT_UNIQUE},
398 {V_NUM, 2},
399 {V_CHAR, 3, USERS_TABLE, "shell"},
400 {V_CHAR, 4, USERS_TABLE, "winconsoleshell"},
401 {V_CHAR, 5, USERS_TABLE, "first"},
402 {V_CHAR, 6, USERS_TABLE, "last"},
403 {V_CHAR, 7, USERS_TABLE, "middle"},
404 {V_NUM, 8},
405 {V_CHAR, 9, USERS_TABLE, "clearid"},
406 {V_TYPE, 10, 0, "class", 0, MR_BAD_CLASS},
407 {V_ID, 11, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
408 {V_NUM, 13},
409};
410
411static struct validate uuac2_validate = {
412 uuac2_valobj,
413 12,
414 0,
415 0,
416 0,
417 "users_id",
418 0,
419 setup_ausr,
420 set_modtime_by_id,
421};
d33e787c 422
4ffa124a 423static struct validate uuac_validate = {
0c345c78 424 uuac_valobj,
186dd63b 425 13,
426 0,
427 0,
428 0,
429 "users_id",
430 0,
431 setup_ausr,
432 set_modtime_by_id,
433};
434
435static struct validate uusr2_validate = {
436 uuac2_valobj,
437 10,
0c345c78 438 0,
439 0,
440 0,
e2b8245f 441 "users_id",
0c345c78 442 0,
443 setup_ausr,
d55429b2 444 set_modtime_by_id,
4ffa124a 445};
0c345c78 446
d33e787c 447static struct validate uusr_validate = {
4ffa124a 448 uuac_valobj,
d1b3a4bf 449 11,
d33e787c 450 0,
451 0,
452 0,
e2b8245f 453 "users_id",
d33e787c 454 0,
4ffa124a 455 setup_ausr,
d33e787c 456 set_modtime_by_id,
457};
458
459static char *uush_fields[] = {
e2b8245f 460 "login",
461 "shell",
d33e787c 462};
463
03c05291 464static struct valobj uush_valobj[] = {
e2b8245f 465 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
466 {V_CHAR, 1, USERS_TABLE, "shell"},
03c05291 467};
468
d33e787c 469static struct validate uush_validate = {
03c05291 470 uush_valobj,
d1b3a4bf 471 2,
d33e787c 472 0,
473 0,
474 0,
e2b8245f 475 "users_id",
d33e787c 476 access_user,
477 0,
a39342a9 478 set_finger_modtime,
d33e787c 479};
480
29dbfca4 481static char *uuws_fields[] = {
482 "login",
483 "winconsoleshell",
484};
485
486static struct valobj uuws_valobj[] = {
487 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
488 {V_CHAR, 1, USERS_TABLE, "winconsoleshell"},
489};
490
491static struct validate uuws_validate = {
492 uuws_valobj,
493 2,
494 0,
495 0,
496 0,
497 "users_id",
498 access_user,
499 0,
500 set_finger_modtime,
501};
502
d33e787c 503static char *uust_fields[] = {
e2b8245f 504 "login",
505 "status",
d33e787c 506};
507
4ffa124a 508static char *uuss_fields[] = {
e2b8245f 509 "login",
510 "secure",
4ffa124a 511};
0c345c78 512
f802fd0d 513static struct valobj uust_valobj[] = {
f802fd0d 514 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
515 {V_NUM, 1},
516 {V_NUM, 2},
517};
518
d33e787c 519static struct validate uust_validate = {
f802fd0d 520 uust_valobj,
d1b3a4bf 521 2,
d33e787c 522 0,
523 0,
524 0,
e2b8245f 525 "users_id",
d33e787c 526 0,
527 0,
528 set_modtime_by_id,
529};
530
531static char *dusr_fields[] = {
e2b8245f 532 "login",
d33e787c 533};
534
535static struct validate dusr_validate = {
d1b3a4bf 536 VOuser0,
537 1,
d33e787c 538 0,
539 0,
540 0,
541 0,
542 0,
543 setup_dusr,
544 0,
545};
546
77eb4bdf 547static char *aurv_fields[] = {
548 "login", "reservation",
549};
550
551static struct validate aurv_validate = {
552 VOuser0,
553 1,
554 0,
555 0,
556 0,
557 "users_id",
558 0,
559 0,
560 do_user_reservation,
561};
562
563static char *gurv_fields[] = {
564 "login",
565 "reservation",
566};
567
568static struct validate gurv_validate = {
569 VOuser0,
570 1,
571 0,
572 0,
573 0,
574 0,
575 0,
576 0,
577 get_user_reservations,
578};
579
580static char *gubr_fields[] = {
581 "reservation",
582 "login",
583};
584
585static struct validate gubr_validate = {
586 0,
587 0,
588 0,
589 0,
590 0,
591 0,
592 0,
593 0,
594 get_user_by_reservation,
595};
596
e2b8245f 597static char *gkum_fields[] = { "login", "kerberos",
598 "login", "kerberos" };
012fc215 599
e2b8245f 600static char *akum_fields[] = { "login", "kerberos" };
012fc215 601
602static struct valobj akum_valobj[] =
603{
e2b8245f 604 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
03c05291 605 {V_ID, 1, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
012fc215 606};
607
608static struct validate akum_validate =
609{
0c345c78 610 akum_valobj,
d1b3a4bf 611 2,
e2b8245f 612 "users_id",
3e8c655c 613 "users_id = %d or string_id = %d",
0c345c78 614 2,
e2b8245f 615 "users_id",
0c345c78 616 access_user,
996ffd1d 617 0,
135dcb80 618 0,
619};
012fc215 620
621static struct validate dkum_validate =
622{
0c345c78 623 akum_valobj,
d1b3a4bf 624 2,
e2b8245f 625 "users_id",
3e8c655c 626 "users_id = %d and string_id = %d",
0c345c78 627 2,
e2b8245f 628 "users_id",
0c345c78 629 access_user,
630 0,
135dcb80 631 0,
632};
012fc215 633
d33e787c 634static char *gfbl_fields[] = {
e2b8245f 635 "login",
636 "login", "fullname", "nickname", "home_addr",
5eaef520 637 "home_phone", "office_addr", "office_phone", "department",
8db06f75 638 "affiliation", "modtime", "modby", "modwith",
d33e787c 639};
640
641static struct validate gfbl_validate = {
642 VOuser0,
643 1,
644 0,
645 0,
646 0,
647 0,
648 access_user,
649 0,
650 followup_fix_modby,
651};
652
653static char *ufbl_fields[] = {
e2b8245f 654 "login",
d33e787c 655 "fullname", "nickname", "home_addr",
5eaef520 656 "home_phone", "office_addr", "office_phone", "department",
4e5ec77f 657 "affiliation",
d33e787c 658};
659
03c05291 660static struct valobj ufbl_valobj[] = {
e2b8245f 661 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
03c05291 662 {V_LEN, 1, USERS_TABLE, "fullname"},
663 {V_LEN, 2, USERS_TABLE, "nickname"},
664 {V_LEN, 3, USERS_TABLE, "home_addr"},
665 {V_LEN, 4, USERS_TABLE, "home_phone"},
666 {V_LEN, 5, USERS_TABLE, "office_addr"},
667 {V_LEN, 6, USERS_TABLE, "office_phone"},
668 {V_LEN, 7, USERS_TABLE, "department"},
669 {V_LEN, 8, USERS_TABLE, "affiliation"},
670};
671
d33e787c 672static struct validate ufbl_validate = {
03c05291 673 ufbl_valobj,
d1b3a4bf 674 9,
d33e787c 675 0,
676 0,
677 0,
678 0,
679 access_user,
680 0,
681 set_finger_modtime,
682};
683
684static char *gpob_fields[] = {
e2b8245f 685 "login",
d6d830a1 686 "login", "type", "box", "address", "modtime", "modby", "modwith",
d33e787c 687};
688
689static struct validate gpob_validate = {
690 VOuser0,
691 1,
692 "potype",
5eaef520 693 "potype != 'NONE' and users_id = %d",
d33e787c 694 1,
695 0,
696 access_user,
697 0,
698 followup_gpob,
699};
700
701static char *gpox_fields[] = {
e2b8245f 702 "login", "type", "box",
d33e787c 703};
704
705static struct validate gpox_validate = {
d1b3a4bf 706 0,
707 0,
d33e787c 708 0,
709 0,
710 0,
711 0,
712 0,
713 0,
714 followup_gpob,
715};
716
717static char *spob_fields[] = {
e2b8245f 718 "login", "type", "box",
d33e787c 719};
720
721static struct valobj spob_valobj[] = {
e2b8245f 722 {V_ID, 0, USERS_TABLE, "login", "users_id", MR_USER},
03c05291 723 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
d33e787c 724};
725
726static struct validate spob_validate = /* SET_POBOX */
727{
728 spob_valobj,
d1b3a4bf 729 2,
d33e787c 730 0,
731 0,
732 0,
733 0,
f659afb2 734 access_spob,
d33e787c 735 0,
736 set_pobox,
737};
738
739static struct validate spop_validate = /* SET_POBOX_POP */
740{
d1b3a4bf 741 VOuser0,
742 1,
d33e787c 743 0,
744 0,
745 0,
746 0,
747 access_user,
17cb3de8 748 0,
749 set_pobox_pop,
d33e787c 750};
751
752static struct validate dpob_validate = /* DELETE_POBOX */
753{
d1b3a4bf 754 VOuser0,
755 1,
d33e787c 756 0,
757 0,
758 0,
759 0,
760 access_user,
761 setup_dpob,
762 set_pobox_modtime,
763};
764
765static char *gmac_fields[] = {
e2b8245f 766 "name",
8db06f75 767 "name", "type", "modtime", "modby", "modwith",
d33e787c 768};
769
e4ae0190 770static char *ghst2_fields[] = {
e2b8245f 771 "name", "address", "location", "network",
8db06f75 772 "name", "vendor", "model", "os", "location", "contact", "use",
773 "status", "status_change", "network", "address", "ace_type",
774 "ace_name", "admin_comment", "ops_comment", "created", "creator",
775 "inuse", "modtime", "modby", "modwith",
d33e787c 776};
777
e4ae0190 778static char *ghbh2_fields[] = {
012e079f 779 "hwaddr",
780 "name", "vendor", "model", "os", "location", "contact", "use",
781 "status", "status_change", "network", "address", "ace_type",
782 "ace_name", "admin_comment", "ops_comment", "created", "creator",
783 "inuse", "modtime", "modby", "modwith",
784};
785
e4ae0190 786static char *ghst_fields[] = {
787 "name", "address", "location", "network",
788 "name", "vendor", "model", "os", "location", "contact", "billing_contact",
789 "use", "status", "status_change", "network", "address", "ace_type",
790 "ace_name", "admin_comment", "ops_comment", "created", "creator",
791 "inuse", "modtime", "modby", "modwith",
792};
793
794static char *ghbh_fields[] = {
795 "hwaddr",
796 "name", "vendor", "model", "os", "location", "contact", "billing_contact",
797 "use", "status", "status_change", "network", "address", "ace_type",
798 "ace_name", "admin_comment", "ops_comment", "created", "creator",
799 "inuse", "modtime", "modby", "modwith",
800};
801
5eaef520 802static struct validate ghst_validate = {
263a36d4 803 0,
804 0,
a66a2204 805 0,
806 0,
807 0,
808 0,
809 access_host,
810 0,
811 followup_ghst,
812};
813
2884200f 814static char *ghha_fields[] = {
815 "name",
816 "hwaddr",
817};
818
e4ae0190 819static char *ahst2_fields[] = {
8db06f75 820 "name", "vendor", "model", "os", "location", "contact", "use",
821 "status", "subnet", "address", "ace_type", "ace_name",
822 "admin_comment", "ops_comment",
a66a2204 823};
824
e4ae0190 825static struct valobj ahst2_valobj[] = {
e2b8245f 826 {V_CHAR, 0, MACHINE_TABLE, "name"},
03c05291 827 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
828 {V_CHAR, 2, MACHINE_TABLE, "model"},
829 {V_CHAR, 3, MACHINE_TABLE, "os"},
830 {V_CHAR, 4, MACHINE_TABLE, "location"},
831 {V_CHAR, 5, MACHINE_TABLE, "contact"},
f802fd0d 832 {V_NUM, 6},
833 {V_NUM, 7},
e2b8245f 834 {V_ID, 8, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
835 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
a66a2204 836 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
03c05291 837 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
838 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
d33e787c 839};
840
e4ae0190 841static struct validate ahst2_validate = {
842 ahst2_valobj,
843 13,
844 "name",
845 "name = UPPER('%s')",
846 1,
847 "mach_id",
848 access_host,
849 setup_ahst,
850 set_uppercase_modtime,
851};
852
853static char *ahst_fields[] = {
854 "name", "vendor", "model", "os", "location", "contact", "billing_contact",
855 "use", "status", "subnet", "address", "ace_type", "ace_name",
856 "admin_comment", "ops_comment",
857};
858
859static struct valobj ahst_valobj[] = {
860 {V_CHAR, 0, MACHINE_TABLE, "name"},
861 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
862 {V_CHAR, 2, MACHINE_TABLE, "model"},
863 {V_CHAR, 3, MACHINE_TABLE, "os"},
864 {V_CHAR, 4, MACHINE_TABLE, "location"},
865 {V_CHAR, 5, MACHINE_TABLE, "contact"},
866 {V_CHAR, 6, MACHINE_TABLE, "billing_contact"},
867 {V_NUM, 7},
868 {V_NUM, 8},
869 {V_ID, 9, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
870 {V_TYPE, 11, 0, "ace_type", 0, MR_ACE},
871 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
872 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
873 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
874};
875
a66a2204 876static struct validate ahst_validate = {
877 ahst_valobj,
e4ae0190 878 14,
e2b8245f 879 "name",
03c05291 880 "name = UPPER('%s')",
d33e787c 881 1,
e2b8245f 882 "mach_id",
a66a2204 883 access_host,
884 setup_ahst,
0ec43029 885 set_uppercase_modtime,
d33e787c 886};
887
e4ae0190 888static char *uhst2_fields[] = {
e2b8245f 889 "name",
8db06f75 890 "newname", "vendor", "model", "os", "location", "contact", "use",
891 "status", "subnet", "address", "ace_type", "ace_name",
892 "admin_comment", "ops_comment",
d33e787c 893};
894
e4ae0190 895static struct valobj uhst2_valobj[] = {
03c05291 896 {V_CHAR, 0, MACHINE_TABLE, "name"},
e2b8245f 897 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
898 {V_RENAME, 1, MACHINE_TABLE, "name", "mach_id", MR_NOT_UNIQUE},
03c05291 899 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
900 {V_CHAR, 3, MACHINE_TABLE, "model"},
901 {V_CHAR, 4, MACHINE_TABLE, "os"},
902 {V_CHAR, 5, MACHINE_TABLE, "location"},
f802fd0d 903 {V_CHAR, 6, MACHINE_TABLE, "contact"},
904 {V_NUM, 7},
905 {V_NUM, 8},
e2b8245f 906 {V_ID, 9, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
907 {V_TYPE, 11, 0, "ace_type", 0, MR_ACE},
a66a2204 908 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
03c05291 909 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
910 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
d33e787c 911};
912
e4ae0190 913static struct validate uhst2_validate = {
914 uhst2_valobj,
915 15,
916 0,
917 0,
918 0,
919 "mach_id",
920 access_host,
921 setup_ahst,
922 set_modtime_by_id,
923};
924
925static char *uhst_fields[] = {
926 "name",
927 "newname", "vendor", "model", "os", "location", "contact", "billing_contact",
928 "use", "status", "subnet", "address", "ace_type", "ace_name",
929 "admin_comment", "ops_comment",
930};
931
932static struct valobj uhst_valobj[] = {
933 {V_CHAR, 0, MACHINE_TABLE, "name"},
934 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
935 {V_RENAME, 1, MACHINE_TABLE, "name", "mach_id", MR_NOT_UNIQUE},
936 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
937 {V_CHAR, 3, MACHINE_TABLE, "model"},
938 {V_CHAR, 4, MACHINE_TABLE, "os"},
939 {V_CHAR, 5, MACHINE_TABLE, "location"},
940 {V_CHAR, 6, MACHINE_TABLE, "contact"},
941 {V_CHAR, 7, MACHINE_TABLE, "billing_contact"},
942 {V_NUM, 8},
943 {V_NUM, 9},
944 {V_ID, 10, SUBNET_TABLE, "name", "snet_id", MR_SUBNET},
945 {V_TYPE, 12, 0, "ace_type", 0, MR_ACE},
946 {V_TYPEDATA, 13, 0, 0, 0, MR_ACE},
947 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
948 {V_ID, 15, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
949};
950
a66a2204 951static struct validate uhst_validate = {
952 uhst_valobj,
e4ae0190 953 16,
d33e787c 954 0,
955 0,
956 0,
e2b8245f 957 "mach_id",
a66a2204 958 access_host,
959 setup_ahst,
d33e787c 960 set_modtime_by_id,
961};
962
2884200f 963static char *uhha_fields[] = {
964 "name",
965 "hwaddr"
966};
967
968static struct valobj uhha_valobj[] = {
969 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
970 {V_CHAR, 1, MACHINE_TABLE, "hwaddr"},
971};
972
973static struct validate uhha_validate = {
974 uhha_valobj,
975 2,
976 0,
977 0,
978 0,
979 "mach_id",
980 0,
981 setup_uhha,
982 set_modtime_by_id,
983};
984
a66a2204 985static char *dhst_fields[] = {
e2b8245f 986 "name",
d33e787c 987};
988
a66a2204 989static struct validate dhst_validate = {
d1b3a4bf 990 VOmach0,
991 1,
d33e787c 992 0,
993 0,
994 0,
995 0,
996 0,
997 setup_dmac,
998 0,
999};
1000
a66a2204 1001static char *ghal_fields[] = {
e2b8245f 1002 "alias", "canonical_hostname",
1003 "alias", "canonical_hostname"
a66a2204 1004};
1005
a66a2204 1006static struct validate ghal_validate = {
263a36d4 1007 0,
1008 0,
a66a2204 1009 0,
1010 0,
1011 0,
1012 0,
65adfb53 1013 access_ahal,
a66a2204 1014 0,
03c05291 1015 0,
a66a2204 1016};
1017
1018static struct valobj ahal_valobj[] = {
e2b8245f 1019 {V_CHAR, 0, HOSTALIAS_TABLE, "name"},
e2b8245f 1020 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
a66a2204 1021};
1022
1023static struct validate ahal_validate = {
1024 ahal_valobj,
263a36d4 1025 2,
e2b8245f 1026 "name",
996ffd1d 1027 "name = UPPER('%s')",
a66a2204 1028 1,
e2b8245f 1029 "mach_id",
a66a2204 1030 access_ahal,
1031 setup_ahal,
1032 0,
1033};
1034
1035static struct valobj dhal_valobj[] = {
e2b8245f 1036 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
a66a2204 1037};
1038
1039static struct validate dhal_validate = {
1040 dhal_valobj,
263a36d4 1041 1,
e2b8245f 1042 "name",
996ffd1d 1043 "name = UPPER('%s') AND mach_id = %d",
a66a2204 1044 2,
e2b8245f 1045 "mach_id",
a66a2204 1046 access_ahal,
1047 0,
1048 0,
1049};
1050
3c1d412c 1051static char *gsnt_fields[] = {
e2b8245f 1052 "name",
8db06f75 1053 "name", "description", "address", "mask", "low", "high", "prefix",
1054 "ace_type", "ace_name", "modtime", "modby", "modwith"
3c1d412c 1055};
1056
3c1d412c 1057static struct validate gsnt_validate = {
263a36d4 1058 0,
1059 0,
3c1d412c 1060 0,
1061 0,
1062 0,
1063 0,
a70337e7 1064 access_snt,
3c1d412c 1065 0,
1066 followup_gsnt,
1067};
1068
1069static char *asnt_fields[] = {
8db06f75 1070 "name", "description", "address", "mask", "low", "high", "prefix",
1071 "ace_type", "ace_name",
3c1d412c 1072};
1073
1074static struct valobj asnt_valobj[] = {
e2b8245f 1075 {V_CHAR, 0, SUBNET_TABLE, "name"},
1076 {V_LEN, 1, SUBNET_TABLE, "description"},
f802fd0d 1077 {V_NUM, 2},
1078 {V_NUM, 3},
1079 {V_NUM, 4},
1080 {V_NUM, 5},
03c05291 1081 {V_LEN, 6, SUBNET_TABLE, "prefix"},
e2b8245f 1082 {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
bd8c26ff 1083 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
3c1d412c 1084};
1085
5eaef520 1086static struct validate asnt_validate =
3c1d412c 1087{
5eaef520 1088 asnt_valobj,
d1b3a4bf 1089 9,
e2b8245f 1090 "name",
5eaef520 1091 "name = UPPER('%s')",
1092 1,
e2b8245f 1093 "snet_id",
5eaef520 1094 0,
1095 prefetch_value,
1096 set_uppercase_modtime,
3c1d412c 1097};
1098
1099static char *usnt_fields[] = {
e2b8245f 1100 "name",
8db06f75 1101 "newname", "description", "address", "mask", "low", "high", "prefix",
1102 "ace_type", "ace_name",
3c1d412c 1103};
1104
1105static struct valobj usnt_valobj[] = {
e2b8245f 1106 {V_ID, 0, SUBNET_TABLE, "name", "snet_id", MR_NO_MATCH},
1107 {V_RENAME, 1, SUBNET_TABLE, "name", "snet_id", MR_NOT_UNIQUE},
1108 {V_LEN, 2, SUBNET_TABLE, "description"},
f802fd0d 1109 {V_NUM, 3},
1110 {V_NUM, 4},
1111 {V_NUM, 5},
1112 {V_NUM, 6},
03c05291 1113 {V_LEN, 7, SUBNET_TABLE, "prefix"},
e2b8245f 1114 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
bd8c26ff 1115 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
3c1d412c 1116};
1117
5eaef520 1118static struct validate usnt_validate =
3c1d412c 1119{
5eaef520 1120 usnt_valobj,
d1b3a4bf 1121 10,
e2b8245f 1122 "name",
5eaef520 1123 "snet_id = %d",
1124 1,
e2b8245f 1125 "snet_id",
5eaef520 1126 0,
1127 0,
1128 set_modtime_by_id,
3c1d412c 1129};
1130
1131static char *dsnt_fields[] = {
e2b8245f 1132 "name",
3c1d412c 1133};
1134
3c1d412c 1135static struct validate dsnt_validate = {
d1b3a4bf 1136 VOsnet0,
1137 1,
3c1d412c 1138 0,
1139 0,
1140 0,
1141 0,
1142 0,
1143 setup_dsnt,
1144 0,
1145};
1146
d33e787c 1147static char *gclu_fields[] = {
e2b8245f 1148 "name",
8db06f75 1149 "name", "description", "location", "modtime", "modby", "modwith",
d33e787c 1150};
1151
1152static char *aclu_fields[] = {
e2b8245f 1153 "name", "description", "location",
d33e787c 1154};
0c345c78 1155
339a00a3 1156static struct valobj aclu_valobj[] = {
e2b8245f 1157 {V_CHAR, 0, CLUSTERS_TABLE, "name"},
1158 {V_LEN, 1, CLUSTERS_TABLE, "description"},
1159 {V_LEN, 2, CLUSTERS_TABLE, "location"},
339a00a3 1160};
1161
5eaef520 1162static struct validate aclu_validate =
d33e787c 1163{
339a00a3 1164 aclu_valobj,
d1b3a4bf 1165 3,
e2b8245f 1166 "name",
03c05291 1167 "name = '%s'",
d33e787c 1168 1,
e2b8245f 1169 "clu_id",
d33e787c 1170 0,
45bf7573 1171 prefetch_value,
d33e787c 1172 set_modtime,
1173};
1174
1175static char *uclu_fields[] = {
e2b8245f 1176 "name",
1177 "newname", "description", "location",
d33e787c 1178};
1179
1180static struct valobj uclu_valobj[] = {
e2b8245f 1181 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
1182 {V_RENAME, 1, CLUSTERS_TABLE, "name", "clu_id", MR_NOT_UNIQUE},
1183 {V_LEN, 2, CLUSTERS_TABLE, "description"},
1184 {V_LEN, 3, CLUSTERS_TABLE, "location"},
d33e787c 1185};
1186
1187static struct validate uclu_validate = {
1188 uclu_valobj,
d1b3a4bf 1189 4,
d33e787c 1190 0,
1191 0,
1192 0,
e2b8245f 1193 "clu_id",
d33e787c 1194 0,
1195 0,
1196 set_modtime_by_id,
1197};
1198
1199static char *dclu_fields[] = {
e2b8245f 1200 "name",
d33e787c 1201};
1202
1203static struct validate dclu_validate = {
0c345c78 1204 VOclu0,
1205 1,
1206 0,
1207 0,
1208 0,
1209 0,
1210 0,
1211 setup_dclu,
1212 0,
d33e787c 1213};
1214
1215static char *gmcm_fields[] = {
e2b8245f 1216 "machine", "cluster",
1217 "machine", "cluster",
d33e787c 1218};
1219
1220static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1221{ /* DELETE_MACHINE_FROM_CLUSTER */
e2b8245f 1222 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1223 {V_ID, 1, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
d33e787c 1224};
1225
1226static struct validate amtc_validate = /* for amtc and dmfc */
1227{
1228 amtc_valobj,
1229 2,
e2b8245f 1230 "mach_id",
3e8c655c 1231 "mach_id = %d and clu_id = %d",
d33e787c 1232 2,
1233 0,
1234 0,
1235 0,
1236 set_mach_modtime_by_id,
1237};
1238
1239static char *gcld_fields[] = {
e2b8245f 1240 "cluster", "serv_label",
1241 "cluster", "serv_label", "serv_cluster",
88343c5e 1242};
1243
1244static char *acld_fields[] = {
e2b8245f 1245 "cluster", "serv_label", "serv_cluster",
d33e787c 1246};
1247
1248static struct valobj acld_valobj[] =
1249{
e2b8245f 1250 {V_ID, 0, CLUSTERS_TABLE, "name", "clu_id", MR_CLUSTER},
03c05291 1251 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1252 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
d33e787c 1253};
1254
5eaef520 1255static struct validate acld_validate =
1256{
d33e787c 1257 acld_valobj,
99e09b48 1258 3,
e2b8245f 1259 "clu_id",
03c05291 1260 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
99e09b48 1261 3,
1262 0,
1263 0,
1264 0,
1265 set_cluster_modtime_by_id,
1266};
1267
5eaef520 1268static struct validate dcld_validate =
1269{
d1b3a4bf 1270 VOclu0,
03c05291 1271 1,
e2b8245f 1272 "clu_id",
3e8c655c 1273 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
d33e787c 1274 3,
1275 0,
1276 0,
1277 0,
1278 set_cluster_modtime_by_id,
1279};
1280
44da57b2 1281static char *glin2_fields[] = {
e2b8245f 1282 "name",
1283 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
8db06f75 1284 "ace_type", "ace_name", "description", "modtime", "modby", "modwith",
99e09b48 1285};
1286
59c3208b 1287static char *glin3_fields[] = {
44da57b2 1288 "name",
1289 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1290 "nfsgroup", "ace_type", "ace_name", "description", "modtime", "modby",
1291 "modwith",
1292};
1293
59c3208b 1294static char *glin_fields[] = {
1295 "name",
1296 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
4529bc5f 1297 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
59c3208b 1298 "description", "modtime", "modby", "modwith",
1299};
1300
03c05291 1301static struct validate glin_validate = {
0c345c78 1302 0,
0c345c78 1303 0,
1304 0,
1305 0,
1306 0,
1307 0,
03c05291 1308 access_vis_list_by_name,
0c345c78 1309 0,
263a36d4 1310 followup_glin,
d33e787c 1311};
1312
44da57b2 1313static char *alis2_fields[] = {
e2b8245f 1314 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1315 "ace_type", "ace_name", "description",
d33e787c 1316};
1317
44da57b2 1318static struct valobj alis2_valobj[] = {
e2b8245f 1319 {V_CHAR, 0, LIST_TABLE, "name"},
f802fd0d 1320 {V_NUM, 1},
1321 {V_NUM, 2},
1322 {V_NUM, 3},
1323 {V_NUM, 4},
1324 {V_NUM, 5},
1325 {V_NUM, 6},
e2b8245f 1326 {V_TYPE, 7, 0, "ace_type", 0, MR_ACE},
1327 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
1328 {V_LEN, 9, LIST_TABLE, "description"},
d33e787c 1329};
1330
44da57b2 1331static struct validate alis2_validate = {
1332 alis2_valobj,
1333 10,
1334 "name",
1335 "name = '%s'",
1336 1,
1337 "list_id",
1338 0,
1339 setup_alis,
1340 set_modtime,
1341};
1342
59c3208b 1343static char *alis3_fields[] = {
44da57b2 1344 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1345 "nfsgroup", "ace_type", "ace_name", "description",
1346};
1347
59c3208b 1348static struct valobj alis3_valobj[] = {
44da57b2 1349 {V_CHAR, 0, LIST_TABLE, "name"},
1350 {V_NUM, 1},
1351 {V_NUM, 2},
1352 {V_NUM, 3},
1353 {V_NUM, 4},
1354 {V_NUM, 5},
1355 {V_NUM, 6},
1356 {V_NUM, 7},
1357 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
1358 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
1359 {V_LEN, 10, LIST_TABLE, "description"},
1360};
1361
59c3208b 1362static struct validate alis3_validate = {
1363 alis3_valobj,
1364 11,
1365 "name",
1366 "name = '%s'",
1367 1,
1368 "list_id",
1369 0,
1370 setup_alis,
1371 set_modtime,
1372};
1373
1374static char *alis_fields[] = {
1375 "name", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1376 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
1377 "description",
1378};
1379
1380static struct valobj alis_valobj[] = {
1381 {V_CHAR, 0, LIST_TABLE, "name"},
1382 {V_NUM, 1},
1383 {V_NUM, 2},
1384 {V_NUM, 3},
1385 {V_NUM, 4},
1386 {V_NUM, 5},
1387 {V_NUM, 6},
1388 {V_NUM, 7},
1389 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
1390 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
1391 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
1392 {V_TYPEDATA, 11, 0, 0, "list_id", MR_ACE},
1393 {V_LEN, 12, LIST_TABLE, "description"},
1394};
1395
03c05291 1396static struct validate alis_validate = {
1397 alis_valobj,
59c3208b 1398 13,
e2b8245f 1399 "name",
03c05291 1400 "name = '%s'",
d33e787c 1401 1,
e2b8245f 1402 "list_id",
d33e787c 1403 0,
03c05291 1404 setup_alis,
1405 set_modtime,
d33e787c 1406};
1407
44da57b2 1408static char *ulis2_fields[] = {
e2b8245f 1409 "name",
03c05291 1410 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
e2b8245f 1411 "ace_type", "ace_name", "description",
d33e787c 1412};
1413
44da57b2 1414static struct valobj ulis2_valobj[] = {
e2b8245f 1415 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1416 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
f802fd0d 1417 {V_NUM, 2},
1418 {V_NUM, 3},
1419 {V_NUM, 4},
1420 {V_NUM, 5},
1421 {V_NUM, 6},
1422 {V_NUM, 7},
1423 {V_TYPE, 8, 0, "ace_type", 0, MR_ACE},
e2b8245f 1424 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
e2b8245f 1425 {V_LEN, 10, LIST_TABLE, "description"},
d33e787c 1426};
1427
44da57b2 1428static struct validate ulis2_validate = {
1429 ulis2_valobj,
d1b3a4bf 1430 11,
e2b8245f 1431 "name",
03c05291 1432 "list_id = %d",
d33e787c 1433 1,
e2b8245f 1434 "list_id",
03c05291 1435 access_list,
1436 setup_alis,
1437 set_modtime_by_id,
d33e787c 1438};
1439
59c3208b 1440static char *ulis3_fields[] = {
44da57b2 1441 "name",
1442 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1443 "nfsgroup", "ace_type", "ace_name", "description",
1444};
1445
59c3208b 1446static struct valobj ulis3_valobj[] = {
44da57b2 1447 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1448 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
1449 {V_NUM, 2},
1450 {V_NUM, 3},
1451 {V_NUM, 4},
1452 {V_NUM, 5},
1453 {V_NUM, 6},
1454 {V_NUM, 7},
1455 {V_NUM, 8},
1456 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
1457 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
1458 {V_LEN, 11, LIST_TABLE, "description"},
1459};
1460
59c3208b 1461static struct validate ulis3_validate = {
1462 ulis3_valobj,
44da57b2 1463 12,
1464 "name",
1465 "list_id = %d",
1466 1,
1467 "list_id",
1468 access_list,
1469 setup_alis,
1470 set_modtime_by_id,
1471};
1472
59c3208b 1473static char *ulis_fields[] = {
1474 "name",
1475 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1476 "nfsgroup", "ace_type", "ace_name", "memace_type", "memace_name",
1477 "description",
1478};
1479
1480static struct valobj ulis_valobj[] = {
1481 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
1482 {V_RENAME, 1, LIST_TABLE, "name", "list_id", MR_NOT_UNIQUE},
1483 {V_NUM, 2},
1484 {V_NUM, 3},
1485 {V_NUM, 4},
1486 {V_NUM, 5},
1487 {V_NUM, 6},
1488 {V_NUM, 7},
1489 {V_NUM, 8},
1490 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
1491 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
1492 {V_TYPE, 11, 0, "ace_type", 0, MR_ACE},
1493 {V_TYPEDATA, 12, 0, 0, "list_id", MR_ACE},
1494 {V_LEN, 13, LIST_TABLE, "description"},
1495};
1496
1497static struct validate ulis_validate = {
1498 ulis_valobj,
1499 14,
1500 "name",
1501 "list_id = %d",
1502 1,
1503 "list_id",
1504 access_list,
1505 setup_alis,
1506 set_modtime_by_id,
1507};
1508
03c05291 1509static char *dlis_fields[] = {
e2b8245f 1510 "name",
d33e787c 1511};
1512
03c05291 1513static struct validate dlis_validate = {
d1b3a4bf 1514 VOlist0,
1515 1,
e2b8245f 1516 "name",
03c05291 1517 "list_id = %d",
d33e787c 1518 1,
1519 0,
03c05291 1520 access_list,
1521 setup_dlis,
d33e787c 1522 0,
1523};
1524
03c05291 1525static char *amtl_fields[] = {
1526 "list_name", "member_type", "member_name",
d33e787c 1527};
1528
46b6f1f6 1529static char *atml_fields[] = {
1530 "list_name", "member_type", "member_name", "tag",
1531};
1532
03c05291 1533static struct valobj amtl_valobj[] = {
e2b8245f 1534 {V_ID, 0, LIST_TABLE, "name", "list_id", MR_LIST},
03c05291 1535 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1536 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
46b6f1f6 1537 {V_ID, 3, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
99e09b48 1538};
1539
03c05291 1540static struct validate amtl_validate =
1541{
1542 amtl_valobj,
d1b3a4bf 1543 3,
d33e787c 1544 0,
1545 0,
1546 0,
1547 0,
03c05291 1548 access_list,
d33e787c 1549 0,
03c05291 1550 add_member_to_list,
d33e787c 1551};
1552
46b6f1f6 1553static struct validate atml_validate =
1554{
1555 amtl_valobj,
1556 4,
1557 0,
1558 0,
1559 0,
1560 0,
1561 access_list,
1562 0,
1563 add_member_to_list,
1564};
1565
1566static struct validate tmol_validate =
1567{
1568 amtl_valobj,
1569 4,
46b6f1f6 1570 0,
46b6f1f6 1571 0,
1572 0,
20541c25 1573 0,
1574 access_list,
1575 0,
1576 tag_member_of_list,
46b6f1f6 1577};
1578
03c05291 1579static struct validate dmfl_validate =
1580{
1581 amtl_valobj,
d1b3a4bf 1582 3,
0c345c78 1583 0,
1584 0,
1585 0,
1586 0,
03c05291 1587 access_list,
0c345c78 1588 0,
03c05291 1589 delete_member_from_list,
d33e787c 1590};
1591
03c05291 1592static char *gaus_fields[] = {
e2b8245f 1593 "ace_type", "ace_name",
03c05291 1594 "use_type", "use_name",
d33e787c 1595};
1596
03c05291 1597static struct valobj gaus_valobj[] = {
03c05291 1598 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1599 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
d33e787c 1600};
1601
03c05291 1602static struct validate gaus_validate = {
1603 gaus_valobj,
d1b3a4bf 1604 2,
d33e787c 1605 0,
d33e787c 1606 0,
d33e787c 1607 0,
d33e787c 1608 0,
03c05291 1609 access_member,
d33e787c 1610 0,
03c05291 1611 get_ace_use,
d33e787c 1612};
1613
d3051625 1614static char *ghbo_fields[] = {
1615 "ace_type", "ace_name",
1616 "name",
1617};
1618
1619static struct valobj ghbo_valobj[] = {
1620 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1621 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1622};
1623
1624static struct validate ghbo_validate = {
1625 ghbo_valobj,
1626 2,
1627 0,
1628 0,
1629 0,
1630 0,
1631 access_member,
1632 0,
1633 get_host_by_owner,
1634};
1635
03c05291 1636static char *qgli_fields[] = {
1637 "active", "publicflg", "hidden", "maillist", "grouplist",
1638 "list",
3e8c655c 1639};
d33e787c 1640
03c05291 1641static struct valobj qgli_valobj[] = {
1642 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1643 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1644 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1645 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1646 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
d33e787c 1647};
1648
03c05291 1649static struct validate qgli_validate = {
1650 qgli_valobj,
1651 5,
647daf33 1652 0,
d33e787c 1653 0,
1654 0,
87167924 1655 0,
03c05291 1656 access_qgli,
d33e787c 1657 0,
03c05291 1658 qualified_get_lists,
d33e787c 1659};
1660
03c05291 1661static char *gmol_fields[] = {
1662 "list_name",
1663 "member_type", "member_name",
d33e787c 1664};
1665
46b6f1f6 1666static char *gtml_fields[] = {
1667 "list_name",
1668 "member_type", "member_name", "tag",
d33e787c 1669};
1670
46b6f1f6 1671static struct validate gmol_validate = {
d1b3a4bf 1672 VOlist0,
1673 1,
d33e787c 1674 0,
1675 0,
1676 0,
1677 0,
03c05291 1678 access_visible_list,
d33e787c 1679 0,
46b6f1f6 1680 get_members_of_list,
d33e787c 1681};
1682
03c05291 1683static char *glom_fields[] = {
1684 "member_type", "member_name",
1685 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
d33e787c 1686};
1687
03c05291 1688static struct valobj glom_valobj[] = {
5eaef520 1689 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1690 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
d33e787c 1691};
1692
03c05291 1693static struct validate glom_validate = {
1694 glom_valobj,
d1b3a4bf 1695 2,
d33e787c 1696 0,
1697 0,
03c05291 1698 0,
1699 0,
1700 access_member,
1701 0,
1702 get_lists_of_member,
d33e787c 1703};
1704
03c05291 1705static char *cmol_fields[] = {
1706 "list_name",
1707 "count",
d33e787c 1708};
1709
03c05291 1710static struct validate cmol_validate = {
1711 VOlist0,
d33e787c 1712 1,
1713 0,
1714 0,
1715 0,
1716 0,
03c05291 1717 access_visible_list,
d33e787c 1718 0,
03c05291 1719 count_members_of_list,
d33e787c 1720};
1721
03c05291 1722static char *gsin_fields[] = {
e2b8245f 1723 "service",
1724 "service", "update_int", "target_file", "script", "dfgen", "dfcheck",
1725 "type", "enable", "inprogress", "harderror", "errmsg",
8db06f75 1726 "ace_type", "ace_name", "modtime", "modby", "modwith",
88343c5e 1727};
1728
5eaef520 1729static struct validate gsin_validate =
03c05291 1730{
263a36d4 1731 0,
1732 0,
99e09b48 1733 0,
1734 0,
1735 0,
1736 0,
03c05291 1737 access_service,
99e09b48 1738 0,
59c3208b 1739 followup_gsin,
99e09b48 1740};
1741
03c05291 1742static char *qgsv_fields[] = {
1743 "enable", "inprogress", "harderror",
1744 "service",
4ffa124a 1745};
0c345c78 1746
03c05291 1747static struct valobj qgsv_valobj[] = {
1748 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1749 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1750 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
d33e787c 1751};
1752
03c05291 1753static struct validate qgsv_validate = {
1754 qgsv_valobj,
1755 3,
d33e787c 1756 0,
1757 0,
1758 0,
1759 0,
d33e787c 1760 0,
03c05291 1761 0,
1762 qualified_get_server,
d33e787c 1763};
1764
03c05291 1765static char *asin_fields[] = {
e2b8245f 1766 "service", "update_int", "target_file", "script", "type", "enable",
1767 "ace_type", "ace_name",
d33e787c 1768};
1769
03c05291 1770static struct valobj asin_valobj[] = {
e2b8245f 1771 {V_CHAR, 0, SERVERS_TABLE, "name"},
f802fd0d 1772 {V_NUM, 1},
03c05291 1773 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1774 {V_LEN, 3, SERVERS_TABLE, "script"},
1775 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
f802fd0d 1776 {V_NUM, 5},
e2b8245f 1777 {V_TYPE, 6, 0, "ace_type", 0, MR_ACE},
03c05291 1778 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
d33e787c 1779};
1780
03c05291 1781static struct validate asin_validate = /* for asin, usin */
1782{
1783 asin_valobj,
d1b3a4bf 1784 8,
e2b8245f 1785 "name",
03c05291 1786 "name = UPPER('%s')",
d33e787c 1787 1,
d33e787c 1788 0,
03c05291 1789 0,
1790 0,
1791 set_uppercase_modtime,
d33e787c 1792};
1793
03c05291 1794static struct validate rsve_validate = {
1795 asin_valobj,
d1b3a4bf 1796 1,
e2b8245f 1797 "name",
03c05291 1798 "name = UPPER('%s')",
d33e787c 1799 1,
d33e787c 1800 0,
03c05291 1801 access_service,
1802 0,
1803 set_uppercase_modtime,
d33e787c 1804};
1805
03c05291 1806static char *ssif_fields[] = {
e2b8245f 1807 "service", "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
d33e787c 1808};
1809
03c05291 1810static struct valobj ssif_valobj[] = {
d1b3a4bf 1811 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
f802fd0d 1812 {V_NUM, 1},
1813 {V_NUM, 2},
1814 {V_NUM, 3},
1815 {V_NUM, 4},
03c05291 1816 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
d33e787c 1817};
1818
03c05291 1819static struct validate ssif_validate = {
1820 ssif_valobj,
d1b3a4bf 1821 6,
e2b8245f 1822 "name",
03c05291 1823 "name = UPPER('%s')",
d33e787c 1824 1,
1825 0,
1826 0,
03c05291 1827 0,
d33e787c 1828 0,
1829};
1830
03c05291 1831static char *dsin_fields[] = {
e2b8245f 1832 "service",
95127ba8 1833};
1834
03c05291 1835static struct validate dsin_validate = {
1836 asin_valobj,
d1b3a4bf 1837 1,
e2b8245f 1838 "name",
03c05291 1839 "name = UPPER('%s')",
1840 1,
0c345c78 1841 0,
1842 0,
03c05291 1843 setup_dsin,
0c345c78 1844 0,
95127ba8 1845};
1846
03c05291 1847static char *gshi_fields[] = {
e2b8245f 1848 "service", "machine",
1849 "service", "machine", "enable", "override", "success", "inprogress",
03c05291 1850 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
8db06f75 1851 "value3", "modtime", "modby", "modwith",
95127ba8 1852};
1853
03c05291 1854static struct validate gshi_validate = {
263a36d4 1855 0,
1856 0,
0c345c78 1857 0,
1858 0,
1859 0,
1860 0,
03c05291 1861 access_service,
1862 0,
1863 followup_fix_modby,
95127ba8 1864};
1865
03c05291 1866static char *qgsh_fields[] = {
1867 "service", "enable", "override", "success", "inprogress", "hosterror",
e2b8245f 1868 "service", "machine",
d33e787c 1869};
1870
03c05291 1871static struct valobj qgsh_valobj[] = {
1872 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1873 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1874 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1875 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1876 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
99e09b48 1877};
1878
03c05291 1879static struct validate qgsh_validate = {
1880 qgsh_valobj,
1881 5,
d33e787c 1882 0,
1883 0,
1884 0,
1885 0,
1886 0,
1887 0,
03c05291 1888 qualified_get_serverhost,
d33e787c 1889};
1890
03c05291 1891static char *ashi_fields[] = {
e2b8245f 1892 "service", "machine", "enable", "value1", "value2", "value3",
d33e787c 1893};
1894
03c05291 1895static struct valobj ashi_valobj[] = {
e2b8245f 1896 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
e2b8245f 1897 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
f802fd0d 1898 {V_NUM, 2},
1899 {V_NUM, 3},
1900 {V_NUM, 4},
03c05291 1901 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
45bf7573 1902};
1903
03c05291 1904static struct validate ashi_validate = /* ashi & ushi */
1905{
1906 ashi_valobj,
d1b3a4bf 1907 6,
e2b8245f 1908 "service",
03c05291 1909 "service = UPPER('%s') AND mach_id = %d",
d33e787c 1910 2,
d33e787c 1911 0,
03c05291 1912 access_service,
d33e787c 1913 0,
03c05291 1914 set_serverhost_modtime,
99e09b48 1915};
1916
5eaef520 1917static struct validate rshe_validate =
03c05291 1918{
1919 ashi_valobj,
d1b3a4bf 1920 2,
e2b8245f 1921 "service",
03c05291 1922 "service = UPPER('%s') AND mach_id = %d",
1923 2,
1924 0,
1925 access_service,
1926 0,
1927 set_serverhost_modtime,
d33e787c 1928};
1929
5eaef520 1930static struct validate ssho_validate =
03c05291 1931{
1932 ashi_valobj,
d1b3a4bf 1933 2,
e2b8245f 1934 "service",
03c05291 1935 "service = UPPER('%s') AND mach_id = %d",
d33e787c 1936 2,
d33e787c 1937 0,
03c05291 1938 access_service,
1939 0,
1940 trigger_dcm,
d33e787c 1941};
1942
03c05291 1943static char *sshi_fields[] = {
e2b8245f 1944 "service", "machine", "override", "success", "inprogress",
03c05291 1945 "hosterror", "errmsg", "ltt", "lts",
368be132 1946};
1947
03c05291 1948static struct valobj sshi_valobj[] = {
e2b8245f 1949 {V_NAME, 0, SERVERS_TABLE, "name", 0, MR_SERVICE},
f802fd0d 1950 {V_ID, 1, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
1951 {V_NUM, 2},
1952 {V_NUM, 3},
1953 {V_NUM, 4},
1954 {V_NUM, 5},
1955 {V_LEN, 6, SERVERHOSTS_TABLE, "hosterrmsg"},
1956 {V_NUM, 7},
1957 {V_NUM, 8},
368be132 1958};
1959
5eaef520 1960static struct validate sshi_validate =
03c05291 1961{
1962 sshi_valobj,
d1b3a4bf 1963 9,
368be132 1964 0,
1965 0,
1966 0,
1967 0,
1968 0,
1969 0,
03c05291 1970 0,
368be132 1971};
1972
03c05291 1973static char *dshi_fields[] = {
e2b8245f 1974 "service", "machine",
368be132 1975};
1976
5eaef520 1977static struct validate dshi_validate =
03c05291 1978{
1979 ashi_valobj,
d1b3a4bf 1980 2,
e2b8245f 1981 "service",
03c05291 1982 "service = UPPER('%s') AND mach_id = %d",
135dcb80 1983 2,
368be132 1984 0,
03c05291 1985 access_service,
1986 setup_dshi,
368be132 1987 0,
03c05291 1988};
1989
1990static char *gslo_fields[] = {
1991 "server",
e2b8245f 1992 "server", "machine",
03c05291 1993};
1994
1995static char *gfsl_fields[] = {
e2b8245f 1996 "label",
8db06f75 1997 "label", "type", "machine", "name", "mount", "access", "comments",
1998 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
03c05291 1999};
2000
5a8887d8 2001static struct validate gfsl_validate = {
2002 0,
2003 0,
2004 0,
2005 0,
2006 0,
2007 0,
2008 access_filesys,
2009 0,
2010 followup_fix_modby,
2011};
2012
03c05291 2013static char *gfsm_fields[] = {
e2b8245f 2014 "machine",
8db06f75 2015 "label", "type", "machine", "name", "mount", "access", "comments",
2016 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
03c05291 2017};
2018
03c05291 2019static struct validate gfsm_validate = {
d1b3a4bf 2020 VOmach0,
2021 1,
368be132 2022 0,
2023 0,
368be132 2024 0,
03c05291 2025 0,
2026 0,
2027 0,
2028 followup_fix_modby,
368be132 2029};
2030
03c05291 2031static char *gfsn_fields[] = {
cc1bca5c 2032 "machine", "partition",
8db06f75 2033 "label", "type", "machine", "name", "mount", "access", "comments",
2034 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
368be132 2035};
2036
03c05291 2037static struct validate gfsn_validate = {
263a36d4 2038 VOmach0,
2039 1,
368be132 2040 0,
2041 0,
368be132 2042 0,
2043 0,
368be132 2044 0,
2045 0,
03c05291 2046 followup_fix_modby,
368be132 2047};
2048
03c05291 2049static char *gfsp_fields[] = {
2050 "path",
8db06f75 2051 "label", "type", "machine", "name", "mount", "access", "comments",
2052 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
d33e787c 2053};
2054
03c05291 2055static char *gfsg_fields[] = {
e2b8245f 2056 "list",
8db06f75 2057 "label", "type", "machine", "name", "mount", "access", "comments",
2058 "owner", "owners", "create", "lockertype", "modtime", "modby", "modwith",
03c05291 2059};
2060
03c05291 2061static struct validate gfsg_validate = {
d1b3a4bf 2062 VOlist0,
2063 1,
d33e787c 2064 0,
2065 0,
2066 0,
2067 0,
03c05291 2068 access_list,
d33e787c 2069 0,
03c05291 2070 followup_fix_modby,
d33e787c 2071};
2072
03c05291 2073static char *afil_fields[] = {
8db06f75 2074 "label", "type", "machine", "name", "mount", "access", "comments",
2075 "owner", "owners", "create", "lockertype",
d33e787c 2076};
2077
03c05291 2078static struct valobj afil_valobj[] = {
e2b8245f 2079 {V_CHAR, 0, FILESYS_TABLE, "label"},
03c05291 2080 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
e2b8245f 2081 {V_ID, 2, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2082 {V_CHAR, 3, FILESYS_TABLE, "name"},
03c05291 2083 {V_LEN, 4, FILESYS_TABLE, "mount"},
f802fd0d 2084 {V_LEN, 5, FILESYS_TABLE, "rwaccess"},
e2b8245f 2085 {V_LEN, 6, FILESYS_TABLE, "comments"},
2086 {V_ID, 7, USERS_TABLE, "login", "users_id", MR_USER},
2087 {V_ID, 8, LIST_TABLE, "name", "list_id", MR_LIST},
f802fd0d 2088 {V_NUM, 9},
03c05291 2089 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
99e09b48 2090};
2091
03c05291 2092static struct validate afil_validate = {
2093 afil_valobj,
d1b3a4bf 2094 11,
e2b8245f 2095 "label",
03c05291 2096 "label = '%s'",
2097 1,
e2b8245f 2098 "filsys_id",
03c05291 2099 0,
2100 setup_afil,
2101 set_filesys_modtime,
2102};
99e09b48 2103
03c05291 2104static char *ufil_fields[] = {
8db06f75 2105 "label", "newlabel", "type", "machine", "name", "mount", "access",
2106 "comments", "owner", "owners", "create", "lockertype",
d33e787c 2107};
2108
03c05291 2109static struct valobj ufil_valobj[] = {
e2b8245f 2110 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2111 {V_RENAME, 1, FILESYS_TABLE, "label", "filsys_id", MR_NOT_UNIQUE},
03c05291 2112 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
e2b8245f 2113 {V_ID, 3, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2114 {V_CHAR, 4, FILESYS_TABLE, "name"},
03c05291 2115 {V_LEN, 5, FILESYS_TABLE, "mount"},
f802fd0d 2116 {V_LEN, 6, FILESYS_TABLE, "rwaccess"},
e2b8245f 2117 {V_LEN, 7, FILESYS_TABLE, "comments"},
2118 {V_ID, 8, USERS_TABLE, "login", "users_id", MR_USER},
2119 {V_ID, 9, LIST_TABLE, "name", "list_id", MR_LIST},
f802fd0d 2120 {V_NUM, 10},
03c05291 2121 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
d33e787c 2122};
2123
03c05291 2124static struct validate ufil_validate = {
2125 ufil_valobj,
d1b3a4bf 2126 12,
e2b8245f 2127 "label",
03c05291 2128 "filsys_id = %d",
2129 1,
e2b8245f 2130 "filsys_id",
d33e787c 2131 0,
03c05291 2132 setup_ufil,
2133 set_filesys_modtime,
d33e787c 2134};
2135
03c05291 2136static char *dfil_fields[] = {
e2b8245f 2137 "label",
03c05291 2138};
2139
03c05291 2140static struct validate dfil_validate = {
d1b3a4bf 2141 VOfilesys0,
2142 1,
03c05291 2143 "label",
2144 "filsys_id = %d",
2145 1,
d33e787c 2146 0,
2147 0,
03c05291 2148 setup_dfil,
2149 0,
d33e787c 2150};
2151
03c05291 2152static char *gfgm_fields[] = {
e2b8245f 2153 "fsgroup", "filesys", "sortkey"
5eaef520 2154};
03c05291 2155
03c05291 2156static struct validate gfgm_validate = {
d1b3a4bf 2157 VOfilesys0,
29028043 2158 1,
d33e787c 2159 0,
2160 0,
2161 0,
2162 0,
2163 0,
2164 0,
d33e787c 2165 0,
d33e787c 2166};
2167
03c05291 2168static struct valobj aftg_valobj[] = {
e2b8245f 2169 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2170 {V_ID, 1, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
d33e787c 2171};
2172
03c05291 2173static struct validate aftg_validate = {
2174 aftg_valobj,
d1b3a4bf 2175 2,
03c05291 2176 "group_id",
2177 "group_id = %d and filsys_id = %d",
2178 2,
2179 0,
2180 0,
2181 0,
d33e787c 2182 0,
d33e787c 2183};
2184
03c05291 2185static char *ganf_fields[] = {
8db06f75 2186 "machine", "dir", "device", "status", "allocated", "size",
2187 "modtime", "modby", "modwith",
d33e787c 2188};
2189
03c05291 2190static char *gnfp_fields[] = {
e2b8245f 2191 "machine", "dir",
8db06f75 2192 "machine", "dir", "device", "status", "allocated", "size",
2193 "modtime", "modby", "modwith",
d33e787c 2194};
2195
03c05291 2196static struct validate gnfp_validate = {
263a36d4 2197 VOmach0,
2198 1,
03c05291 2199 0,
2200 0,
2201 0,
2202 0,
2203 0,
2204 0,
2205 followup_fix_modby,
d33e787c 2206};
2207
03c05291 2208static struct valobj anfp_valobj[] = {
e2b8245f 2209 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
03c05291 2210 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2211 {V_LEN, 2, NFSPHYS_TABLE, "device"},
f802fd0d 2212 {V_NUM, 3},
2213 {V_NUM, 4},
2214 {V_NUM, 5},
03c05291 2215};
2216
2217static struct validate anfp_validate = {
2218 anfp_valobj,
d1b3a4bf 2219 6,
e2b8245f 2220 "dir",
03c05291 2221 "mach_id = %d and dir = '%s'",
2222 2,
2223 "nfsphys_id",
d33e787c 2224 0,
03c05291 2225 prefetch_value,
2226 set_nfsphys_modtime,
2227};
2228
2229static struct validate unfp_validate = {
2230 anfp_valobj,
d1b3a4bf 2231 6,
e2b8245f 2232 "dir",
03c05291 2233 "mach_id = %d and dir = '%s'",
2234 2,
2235 "nfsphys_id",
d33e787c 2236 0,
03c05291 2237 0,
2238 set_nfsphys_modtime,
d33e787c 2239};
2240
03c05291 2241static char *ajnf_fields[] = {
e2b8245f 2242 "machine", "dir", "adjustment",
d33e787c 2243};
2244
f802fd0d 2245static struct valobj ajnf_valobj[] = {
f802fd0d 2246 {V_ID, 0, MACHINE_TABLE, NAME, "mach_id", MR_MACHINE},
2247 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2248 {V_NUM, 2},
2249};
2250
2251static struct validate ajnf_validate = {
2252 ajnf_valobj,
d1b3a4bf 2253 3,
f802fd0d 2254 "dir",
2255 "mach_id = %d and dir = '%s'",
2256 2,
2257 "nfsphys_id",
2258 0,
2259 0,
2260 set_nfsphys_modtime,
2261};
2262
03c05291 2263static char *dnfp_fields[] = {
e2b8245f 2264 "machine", "dir",
d33e787c 2265};
2266
03c05291 2267static struct validate dnfp_validate = {
d1b3a4bf 2268 anfp_valobj,
2269 2,
e2b8245f 2270 "dir",
03c05291 2271 "mach_id = %d and dir = '%s'",
2272 2,
2273 "nfsphys_id",
66f4a35b 2274 0,
03c05291 2275 setup_dnfp,
2276 set_nfsphys_modtime,
2277};
2278
2279static char *gqot_fields[] = {
e2b8245f 2280 "filesys", "type", "name",
8db06f75 2281 "filesys", "type", "name", "quota", "dir", "machine",
2282 "modtime", "modby", "modwith",
66f4a35b 2283};
2284
03c05291 2285static struct valobj gqot_valobj[] = {
e2b8245f 2286 {V_TYPE, 1, 0, "quota_type", 0, MR_TYPE},
03c05291 2287 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
03c05291 2288};
2289
2290static struct validate gqot_validate = {
2291 gqot_valobj,
263a36d4 2292 2,
66f4a35b 2293 0,
2294 0,
2295 0,
d33e787c 2296 0,
d33e787c 2297 0,
03c05291 2298 0,
2299 followup_gqot,
d33e787c 2300};
2301
03c05291 2302static char *gqbf_fields[] = {
e2b8245f 2303 "filesys",
8db06f75 2304 "filesys", "type", "name", "quota", "dir", "machine",
2305 "modtime", "modby", "modwith",
d33e787c 2306};
2307
03c05291 2308static struct validate gqbf_validate = {
263a36d4 2309 0,
2310 0,
0c345c78 2311 0,
2312 0,
2313 0,
2314 0,
03c05291 2315 access_filesys,
0c345c78 2316 0,
03c05291 2317 followup_gqot,
d33e787c 2318};
2319
03c05291 2320static char *aqot_fields[] = {
e2b8245f 2321 "filesys", "type", "name", "quota",
d33e787c 2322};
2323
03c05291 2324static struct valobj aqot_valobj[] = {
e2b8245f 2325 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2326 {V_TYPE, 1, 0, "quota_type", 0, MR_TYPE},
03c05291 2327 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
f802fd0d 2328 {V_NUM, 3},
d33e787c 2329};
2330
03c05291 2331static struct validate aqot_validate = {
2332 aqot_valobj,
d1b3a4bf 2333 4,
e2b8245f 2334 "filsys_id",
03c05291 2335 "filsys_id = %d and type = '%s' and entity_id = %d",
2336 3,
0c345c78 2337 0,
2338 0,
03c05291 2339 prefetch_filesys,
2340 followup_aqot,
2341};
2342
2343static struct validate uqot_validate = {
2344 aqot_valobj,
d1b3a4bf 2345 4,
e2b8245f 2346 "filsys_id",
03c05291 2347 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2348 3,
2349 0,
0c345c78 2350 0,
03c05291 2351 setup_dqot,
2352 followup_aqot,
2353};
2354
2355static struct validate dqot_validate = {
2356 aqot_valobj,
d1b3a4bf 2357 3,
e2b8245f 2358 "filsys_id",
03c05291 2359 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2360 3,
0c345c78 2361 0,
0c345c78 2362 0,
03c05291 2363 setup_dqot,
2364 followup_dqot,
d33e787c 2365};
2366
03c05291 2367static char *gnfq_fields[] = {
e2b8245f 2368 "filesys", "login",
8db06f75 2369 "filesys", "login", "quota", "dir", "machine",
2370 "modtime", "modby", "modwith",
d33e787c 2371};
2372
03c05291 2373static struct validate gnfq_validate = {
263a36d4 2374 0,
2375 0,
d33e787c 2376 0,
2377 0,
2378 0,
2379 0,
03c05291 2380 access_filesys,
d33e787c 2381 0,
03c05291 2382 followup_gqot,
d33e787c 2383};
2384
03c05291 2385static char *gnqp_fields[] = {
e2b8245f 2386 "machine", "dir",
8db06f75 2387 "filesys", "login", "quota", "dir", "machine",
2388 "modtime", "modby", "modwith",
4ffa124a 2389};
0c345c78 2390
03c05291 2391static char *anfq_fields[] = {
e2b8245f 2392 "filesys", "login", "quota",
d33e787c 2393};
2394
f802fd0d 2395static struct valobj anfq_valobj[] = {
f802fd0d 2396 {V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
2397 {V_ID, 1, USERS_TABLE, "login", "users_id", MR_USER},
2398 {V_NUM, 2},
2399};
2400
03c05291 2401static struct validate anfq_validate = {
f802fd0d 2402 anfq_valobj,
d1b3a4bf 2403 3,
e2b8245f 2404 "filsys_id",
03c05291 2405 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2406 2,
2407 0, /* object ? */
d33e787c 2408 0,
03c05291 2409 prefetch_filesys,
2410 followup_aqot,
d33e787c 2411};
2412
03c05291 2413static struct validate unfq_validate = {
f802fd0d 2414 anfq_valobj,
d1b3a4bf 2415 3,
e2b8245f 2416 "filsys_id",
03c05291 2417 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2418 2,
d33e787c 2419 0,
2420 0,
03c05291 2421 setup_dqot,
2422 followup_aqot,
2423};
2424
2425static struct validate dnfq_validate = {
f802fd0d 2426 anfq_valobj,
d1b3a4bf 2427 3,
e2b8245f 2428 "filsys_id",
03c05291 2429 "filsys_id = %d AND entity_id = %d",
2430 2,
d33e787c 2431 0,
d33e787c 2432 0,
03c05291 2433 setup_dqot,
2434 followup_dqot,
d33e787c 2435};
2436
d7ddc011 2437static char *gzcl2_fields[] = {
e2b8245f 2438 "class",
2439 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
8db06f75 2440 "iws_type", "iws_name", "iui_type", "iui_name",
2441 "modtime", "modby", "modwith",
d33e787c 2442};
2443
d7ddc011 2444static char *gzcl_fields[] = {
2445 "class",
2446 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
2447 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type",
2448 "owner_id", "modtime", "modby", "modwith",
2449};
2450
d33e787c 2451static struct validate gzcl_validate = {
263a36d4 2452 0,
2453 0,
d33e787c 2454 0,
2455 0,
2456 0,
2457 0,
d7ddc011 2458 access_zephyr,
d33e787c 2459 0,
2460 followup_gzcl,
2461};
2462
d7ddc011 2463static char *azcl2_fields[] = {
e2b8245f 2464 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
0c345c78 2465 "iws_type", "iws_name", "iui_type", "iui_name",
d7ddc011 2466};
2467
2468static struct valobj azcl2_valobj[] = {
2469 {V_CHAR, 0, ZEPHYR_TABLE, "class"},
2470 {V_TYPE, 1, 0, "zace_type", 0, MR_ACE},
2471 {V_TYPEDATA, 2, 0, 0, "list_id", MR_ACE},
2472 {V_TYPE, 3, 0, "zace_type", 0, MR_ACE},
2473 {V_TYPEDATA, 4, 0, 0, "list_id", MR_ACE},
2474 {V_TYPE, 5, 0, "zace_type", 0, MR_ACE},
2475 {V_TYPEDATA, 6, 0, 0, "list_id", MR_ACE},
2476 {V_TYPE, 7, 0, "zace_type", 0, MR_ACE},
2477 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
2478};
2479
2480static struct validate azcl2_validate = {
2481 azcl2_valobj,
2482 9,
2483 "class",
2484 "class = '%s'",
2485 1,
2486 0,
2487 0,
2488 0,
2489 set_zephyr_modtime,
2490};
2491
2492static char *azcl_fields[] = {
2493 "class", "xmt_type", "xmt_name", "sub_type", "sub_name",
2494 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type",
2495 "owner_id",
d33e787c 2496};
2497
2498static struct valobj azcl_valobj[] = {
e2b8245f 2499 {V_CHAR, 0, ZEPHYR_TABLE, "class"},
46b6f1f6 2500 {V_TYPE, 1, 0, "zace_type", 0, MR_ACE},
e2b8245f 2501 {V_TYPEDATA, 2, 0, 0, "list_id", MR_ACE},
46b6f1f6 2502 {V_TYPE, 3, 0, "zace_type", 0, MR_ACE},
e2b8245f 2503 {V_TYPEDATA, 4, 0, 0, "list_id", MR_ACE},
46b6f1f6 2504 {V_TYPE, 5, 0, "zace_type", 0, MR_ACE},
e2b8245f 2505 {V_TYPEDATA, 6, 0, 0, "list_id", MR_ACE},
46b6f1f6 2506 {V_TYPE, 7, 0, "zace_type", 0, MR_ACE},
e2b8245f 2507 {V_TYPEDATA, 8, 0, 0, "list_id", MR_ACE},
d7ddc011 2508 {V_TYPE, 9, 0, "ace_type", 0, MR_ACE},
2509 {V_TYPEDATA, 10, 0, 0, "list_id", MR_ACE},
d33e787c 2510};
2511
2512static struct validate azcl_validate = {
2513 azcl_valobj,
d7ddc011 2514 11,
e2b8245f 2515 "class",
03c05291 2516 "class = '%s'",
d33e787c 2517 1,
2518 0,
2519 0,
2520 0,
2521 set_zephyr_modtime,
2522};
2523
d7ddc011 2524static char *uzcl2_fields[] = {
e2b8245f 2525 "class", "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
0c345c78 2526 "iws_type", "iws_name", "iui_type", "iui_name",
d33e787c 2527};
2528
d7ddc011 2529static struct valobj uzcl2_valobj[] = {
2530 {V_NAME, 0, ZEPHYR_TABLE, "class", 0, MR_BAD_CLASS},
2531 {V_RENAME, 1, ZEPHYR_TABLE, "class", 0, MR_NOT_UNIQUE},
2532 {V_TYPE, 2, 0, "zace_type", 0, MR_ACE},
2533 {V_TYPEDATA, 3, 0, 0, "list_id", MR_ACE},
2534 {V_TYPE, 4, 0, "zace_type", 0, MR_ACE},
2535 {V_TYPEDATA, 5, 0, 0, "list_id", MR_ACE},
2536 {V_TYPE, 6, 0, "zace_type", 0, MR_ACE},
2537 {V_TYPEDATA, 7, 0, 0, "list_id", MR_ACE},
2538 {V_TYPE, 8, 0, "zace_type", 0, MR_ACE},
2539 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
2540};
2541
2542static struct validate uzcl2_validate = {
2543 uzcl2_valobj,
2544 10,
2545 "class",
2546 "class = '%s'",
2547 1,
2548 0,
2549 access_zephyr,
2550 0,
2551 set_zephyr_modtime,
2552};
2553
2554static char *uzcl_fields[] = {
2555 "class", "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2556 "iws_type", "iws_name", "iui_type", "iui_name", "owner_type", "owner_id",
2557};
2558
d33e787c 2559static struct valobj uzcl_valobj[] = {
d1b3a4bf 2560 {V_NAME, 0, ZEPHYR_TABLE, "class", 0, MR_BAD_CLASS},
e2b8245f 2561 {V_RENAME, 1, ZEPHYR_TABLE, "class", 0, MR_NOT_UNIQUE},
46b6f1f6 2562 {V_TYPE, 2, 0, "zace_type", 0, MR_ACE},
e2b8245f 2563 {V_TYPEDATA, 3, 0, 0, "list_id", MR_ACE},
46b6f1f6 2564 {V_TYPE, 4, 0, "zace_type", 0, MR_ACE},
e2b8245f 2565 {V_TYPEDATA, 5, 0, 0, "list_id", MR_ACE},
46b6f1f6 2566 {V_TYPE, 6, 0, "zace_type", 0, MR_ACE},
e2b8245f 2567 {V_TYPEDATA, 7, 0, 0, "list_id", MR_ACE},
46b6f1f6 2568 {V_TYPE, 8, 0, "zace_type", 0, MR_ACE},
e2b8245f 2569 {V_TYPEDATA, 9, 0, 0, "list_id", MR_ACE},
d7ddc011 2570 {V_TYPE, 10, 0, "ace_type", 0, MR_ACE},
2571 {V_TYPEDATA, 11, 0, 0, "list_id", MR_ACE},
d33e787c 2572};
2573
2574static struct validate uzcl_validate = {
2575 uzcl_valobj,
d7ddc011 2576 12,
e2b8245f 2577 "class",
3e8c655c 2578 "class = '%s'",
d33e787c 2579 1,
2580 0,
d7ddc011 2581 access_zephyr,
d33e787c 2582 0,
2583 set_zephyr_modtime,
2584};
2585
2586static struct validate dzcl_validate = {
2587 0,
2588 0,
e2b8245f 2589 "class",
73043086 2590 "class = '%s'",
d33e787c 2591 1,
2592 0,
2593 0,
2594 0,
2595 0,
2596};
2597
03c05291 2598static char *gsha_fields[] = {
e2b8245f 2599 "machine",
8db06f75 2600 "machine", "ace_type", "ace_name", "modtime", "modby", "modwith",
03c05291 2601};
2602
5eaef520 2603static struct validate gsha_validate =
03c05291 2604{
263a36d4 2605 0,
2606 0,
03c05291 2607 0,
2608 0,
2609 0,
2610 0,
2611 0,
2612 0,
2613 followup_gsha,
2614};
2615
2616static char *asha_fields[] = {
e2b8245f 2617 "machine", "ace_type", "ace_name",
03c05291 2618};
2619
2620static struct valobj asha_valobj[] = {
e2b8245f 2621 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
e2b8245f 2622 {V_TYPE, 1, 0, "ace_type", 0, MR_ACE},
03c05291 2623 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2624};
2625
5eaef520 2626static struct validate asha_validate =
03c05291 2627{
2628 asha_valobj,
d1b3a4bf 2629 3,
e2b8245f 2630 "mach_id",
03c05291 2631 "mach_id = %d",
2632 1,
e2b8245f 2633 "mach_id",
03c05291 2634 0,
2635 0,
2636 set_modtime_by_id,
2637};
2638
46b6f1f6 2639static char *gacl_fields[] = {
2640 "machine", "target",
2641 "machine", "target", "kind", "list",
2642};
2643
2644static char *aacl_fields[] = {
2645 "machine", "target", "kind", "list",
2646};
2647
2648static char *dacl_fields[] = {
2649 "machine", "target",
2650};
2651
2652static struct valobj aacl_valobj[] = {
2653 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2654 {V_CHAR, 1, ACL_TABLE, "target"},
2655 {V_TYPE, 2, 0, "acl_kind", 0, MR_TYPE},
2656 {V_ID, 3, LIST_TABLE, "name", "list_id", MR_LIST},
2657};
2658
2659static struct validate gacl_validate =
2660{
2661 aacl_valobj,
2662 1,
2663 NULL,
2664 NULL,
2665 0,
2666 "mach_id",
2667 /* access_acl */ 0,
2668 0,
2669 0,
2670};
2671
2672static struct validate aacl_validate =
2673{
2674 aacl_valobj,
2675 4,
2676 "mach_id",
2677 "mach_id = %d AND target = '%s'",
2678 2,
2679 "mach_id",
2680 /* access_acl */ 0,
2681 0,
2682 0,
2683};
2684
fd5b2340 2685static char *gsvc_fields[] = {
69eb9470 2686 "service", "protocol",
8db06f75 2687 "service", "protocol", "port", "description", "modtime", "modby", "modwith",
d33e787c 2688};
2689
fd5b2340 2690static char *asvc_fields[] = {
e2b8245f 2691 "service", "protocol", "port", "description",
fd5b2340 2692};
2693
69eb9470 2694static char *dsvc_fields[] = {
2695 "service", "protocol",
2696};
2697
03c05291 2698static struct valobj asvc_valobj[] = {
e2b8245f 2699 {V_CHAR, 0, SERVICES_TABLE, "name"},
03c05291 2700 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
f802fd0d 2701 {V_NUM, 2},
e2b8245f 2702 {V_CHAR, 3, SERVICES_TABLE, "description"},
03c05291 2703};
2704
fd5b2340 2705static struct validate asvc_validate = {
03c05291 2706 asvc_valobj,
f802fd0d 2707 4,
e2b8245f 2708 "name",
69eb9470 2709 "name = '%s' AND protocol = '%s'",
2710 2,
2711 0,
2712 0,
2713 0,
2714 set_service_modtime,
2715};
2716
2717static struct validate dsvc_validate = {
2718 asvc_valobj,
2719 2,
2720 "name",
2721 "name = '%s' AND protocol = '%s'",
2722 2,
2723 0,
fd5b2340 2724 0,
2725 0,
2726 0,
fd5b2340 2727};
2728
2884200f 2729static char *gprn_fields[] = {
2730 "name",
2731 "name", "type", "hwtype", "duplexname", "hostname",
2732 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2733 "banner", "location", "contact", "modtime", "modby", "modwith"
d33e787c 2734};
2735
2884200f 2736static char *gpbd_fields[] = {
2737 "duplexname",
2738 "name", "type", "hwtype", "duplexname", "hostname",
2739 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2740 "banner", "location", "contact", "modtime", "modby", "modwith"
d4462d4f 2741};
2742
2884200f 2743static char *gpbe_fields[] = {
2744 "hwaddr",
2745 "name", "type", "hwtype", "duplexname", "hostname",
2746 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2747 "banner", "location", "contact", "modtime", "modby", "modwith"
fad88070 2748};
2749
2884200f 2750static char *gpbh_fields[] = {
2751 "hostname",
2752 "name", "type", "hwtype", "duplexname", "hostname",
2753 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2754 "banner", "location", "contact", "modtime", "modby", "modwith"
d33e787c 2755};
2756
2884200f 2757static char *gpbr_fields[] = {
2758 "rm",
2759 "name", "type", "hwtype", "duplexname", "hostname",
2760 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2761 "banner", "location", "contact", "modtime", "modby", "modwith"
d33e787c 2762};
2763
2884200f 2764static char *gpbl_fields[] = {
2765 "location",
2766 "name", "type", "hwtype", "duplexname", "hostname",
2767 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2768 "banner", "location", "contact", "modtime", "modby", "modwith"
fd5b2340 2769};
2770
2884200f 2771static char *gpbc_fields[] = {
2772 "contact",
2773 "name", "type", "hwtype", "duplexname", "hostname",
2774 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2775 "banner", "location", "contact", "modtime", "modby", "modwith"
012fc215 2776};
2777
2884200f 2778static char *aprn_fields[] = {
2779 "printer", "type", "hwtype", "duplexname", "hostname",
2780 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
e5a63571 2781 "banner", "location", "contact",
03c05291 2782};
012fc215 2783
2884200f 2784static struct valobj aprn_valobj[] = {
2785 {V_CHAR, 0, PRINTERS_TABLE, "name"},
2786 {V_TYPE, 1, 0, "printertype", 0, MR_TYPE},
2787 {V_TYPE, 2, 0, "printerhwtype", 0, MR_TYPE},
2788 {V_CHAR, 3, PRINTERS_TABLE, "duplexname"},
2789 {V_ID, 4, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2790 {V_ID, 5, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2791 {V_ID, 6, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2792 {V_CHAR, 7, PRINTERS_TABLE, "rp"},
2793 {V_ID, 8, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2794 {V_NUM, 9},
2795 {V_NUM, 10},
2796 {V_ID, 11, LIST_TABLE, "name", "list_id", MR_LIST},
2797 {V_ID, 12, LIST_TABLE, "name", "list_id", MR_LIST},
e5a63571 2798 {V_NUM, 13},
2799 {V_CHAR, 14, PRINTERS_TABLE, "location"},
2800 {V_CHAR, 15, PRINTERS_TABLE, "contact"},
012fc215 2801};
2802
2884200f 2803static struct validate aprn_validate = {
2804 aprn_valobj,
e5a63571 2805 16,
e2b8245f 2806 "name",
03c05291 2807 "name = '%s'",
012fc215 2808 1,
2809 0,
1a9a0a59 2810 access_printer,
2811 setup_aprn,
2812 set_modtime,
2813};
2814
2815static char *uprn_fields[] = {
2816 "printer",
2817 "printer", "type", "hwtype", "duplexname", "hostname",
2818 "loghost", "rm", "rp", "rq", "ka", "pc", "ac", "lpc_acl",
2819 "banner", "location", "contact",
2820};
2821
2822static struct valobj uprn_valobj[] = {
2823 {V_CHAR, 0, PRINTERS_TABLE, "name"},
2824 {V_CHAR, 1, PRINTERS_TABLE, "name"},
2825 {V_TYPE, 2, 0, "printertype", 0, MR_TYPE},
2826 {V_TYPE, 3, 0, "printerhwtype", 0, MR_TYPE},
2827 {V_CHAR, 4, PRINTERS_TABLE, "duplexname"},
2828 {V_ID, 5, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2829 {V_ID, 6, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2830 {V_ID, 7, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2831 {V_CHAR, 8, PRINTERS_TABLE, "rp"},
2832 {V_ID, 9, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2833 {V_NUM, 10},
2834 {V_NUM, 11},
2835 {V_ID, 12, LIST_TABLE, "name", "list_id", MR_LIST},
2836 {V_ID, 13, LIST_TABLE, "name", "list_id", MR_LIST},
2837 {V_NUM, 14},
2838 {V_CHAR, 15, PRINTERS_TABLE, "location"},
2839 {V_CHAR, 16, PRINTERS_TABLE, "contact"},
2840};
2841
2842static struct validate uprn_validate = {
2843 uprn_valobj,
2844 16,
2845 "name",
2846 "name = '%s'",
2847 1,
012fc215 2848 0,
1a9a0a59 2849 access_printer,
2884200f 2850 setup_aprn,
1a9a0a59 2851 set_modtime,
012fc215 2852};
2853
2884200f 2854static struct validate dprn_validate = {
012fc215 2855 0,
2856 0,
e2b8245f 2857 "name",
3e8c655c 2858 "name = '%s'",
012fc215 2859 1,
2860 0,
1a9a0a59 2861 access_printer,
2862 0,
2863 0,
2864};
2865
2866static char *gpsv_fields[] = {
2867 "host",
2868 "host", "kind", "printer_types", "owner_type", "owner_name",
2869 "lpc_acl", "modtime", "modby", "modwith"
2870};
2871
2872static struct valobj gpsv_valobj[] = {
2873 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2874};
2875
2876static struct validate gpsv_validate = {
2877 gpsv_valobj,
2878 1,
2879 0,
2880 0,
2881 0,
2882 0,
2883 0,
2884 0,
2885 followup_gpsv,
2886};
2887
2888static char *apsv_fields[] = {
2889 "host", "kind", "printer_types", "owner_type", "owner_name", "lpc_acl"
2890};
2891
2892static struct valobj apsv_valobj[] = {
2893 {V_ID, 0, MACHINE_TABLE, "name", "mach_id", MR_MACHINE},
2894 {V_TYPE, 1, 0, "lpd_kind", 0, MR_TYPE},
2895 {V_ID, 2, STRINGS_TABLE, "string", "string_id", MR_STRING},
2896 {V_TYPE, 3, 0, "ace_type", 0, MR_ACE},
2897 {V_TYPEDATA, 4, 0, 0, 0, MR_ACE},
2898 {V_ID, 5, LIST_TABLE, "name", "list_id", MR_LIST},
2899};
2900
2901static struct validate apsv_validate = {
2902 apsv_valobj,
2903 6,
2904 "mach_id",
2905 "mach_id = %d",
2906 1,
2907 "mach_id",
012fc215 2908 0,
2909 0,
1a9a0a59 2910 set_modtime_by_id,
012fc215 2911};
2912
1a9a0a59 2913static char *dpsv_fields[] = {
2914 "host",
2915};
2916
2917static struct validate dpsv_validate = {
2918 gpsv_valobj,
2919 1,
2920 "mach_id",
2921 "mach_id = %d",
2922 1,
2923 0,
2924 0,
2925 setup_dpsv,
2926 0,
2927};
2928
d33e787c 2929static char *gali_fields[] = {
e2b8245f 2930 "name", "type", "trans",
2931 "name", "type", "trans",
d33e787c 2932};
2933
2934static char *aali_fields[] = {
e2b8245f 2935 "name", "type", "trans",
d33e787c 2936};
2937
2938static struct valobj aali_valobj[] = {
e2b8245f 2939 {V_CHAR, 0, ALIAS_TABLE, "name"},
2940 {V_TYPE, 1, 0, "alias", 0, MR_TYPE},
03c05291 2941 {V_CHAR, 2, ALIAS_TABLE, "trans"},
d33e787c 2942};
2943
2944static struct validate aali_validate = {
2945 aali_valobj,
2946 3,
2947 "trans",
03c05291 2948 "name = '%s' and type = '%s' and trans = '%s'",
d33e787c 2949 3,
2950 0,
2951 0,
2952 0,
2953 0,
2954};
2955
2956static struct validate dali_validate = /* DELETE_ALIAS */
2957{
2958 0,
2959 0,
2960 "trans",
73043086 2961 "name = '%s' and type = '%s' and trans = '%s'",
d33e787c 2962 3,
2963 0,
2964 0,
2965 0,
2966 0,
2967};
2968
2969static char *gval_fields[] = {
e2b8245f 2970 "name", "value",
d33e787c 2971};
2972
2973static struct valobj gval_valobj[] = {
e2b8245f 2974 {V_NAME, 0, NUMVALUES_TABLE, "name", 0, MR_NO_MATCH},
d33e787c 2975};
2976
2977static struct validate gval_validate = {
2978 gval_valobj,
2979 1,
2980 0,
2981 0,
2982 0,
2983 0,
2984 0,
2985 0,
2986 0,
2987};
2988
2989static char *aval_fields[] = {
e2b8245f 2990 "name", "value",
d33e787c 2991};
2992
03c05291 2993static struct valobj aval_valobj[] = {
e2b8245f 2994 {V_CHAR, 0, NUMVALUES_TABLE, "name"},
f802fd0d 2995 {V_NUM, 1},
03c05291 2996};
2997
d33e787c 2998static struct validate aval_validate = /* for aval, uval, and dval */
2999{
03c05291 3000 aval_valobj,
f802fd0d 3001 2,
e2b8245f 3002 "name",
03c05291 3003 "name = '%s'",
d33e787c 3004 1,
3005 0,
3006 0,
3007 0,
3008 0,
3009};
3010
3011static char *dval_fields[] = {
e2b8245f 3012 "name",
d33e787c 3013};
3014
3015static char *gats_fields[] = {
8db06f75 3016 "table_name", "appends", "updates", "deletes",
3017 "modtime", "modby", "modwith",
d33e787c 3018};
3019
2962e9ec 3020static char *_sdl_fields[] = {
5eaef520 3021 "level",
2962e9ec 3022};
3023
5eaef520 3024static struct validate _sdl_validate =
2962e9ec 3025{
f802fd0d 3026 VOnum0,
3027 1,
7ac48069 3028 NULL,
3029 NULL,
5eaef520 3030 0,
3031 0,
3032 0,
3033 0,
3034 _sdl_followup,
2962e9ec 3035};
3036
ca3ca9c9 3037static char *gusl_fields[] = {
77bf4a4d 3038 "login", "domain_sid",
ca3ca9c9 3039 "login", "sid", "created",
3040};
3041
3042static struct validate gusl_validate =
3043{
3044 VOuser0,
3045 1,
3046 NULL,
3047 NULL,
3048 0,
3049 0,
3050 0,
3051 0,
3052 0,
3053};
3054
3055static char *glsn_fields[] = {
77bf4a4d 3056 "name", "domain_sid",
ca3ca9c9 3057 "name", "sid", "created",
3058};
3059
3060static struct validate glsn_validate =
3061{
3062 VOlist0,
3063 1,
3064 NULL,
3065 NULL,
3066 0,
3067 0,
3068 0,
3069 0,
3070 0,
3071};
3072
3073static char *ausl_fields[] = {
3074 "login", "sid",
3075};
3076
3077static struct validate ausl_validate =
3078{
3079 VOuser0,
3080 1,
3081 "sid",
d08dccbf 3082 "users_id = %d AND sid = '%s'",
3083 2,
ca3ca9c9 3084 0,
3085 0,
3086 0,
3087 0,
3088};
3089
3090static char *alsn_fields[] = {
3091 "name", "sid",
3092};
3093
3094static struct validate alsn_validate =
3095{
3096 VOlist0,
3097 1,
3098 "sid",
d08dccbf 3099 "list_id = %d AND sid = '%s'",
3100 2,
ca3ca9c9 3101 0,
3102 0,
3103 0,
3104 0,
3105};
d33e787c 3106
77bf4a4d 3107static char *gdds_fields[] = {
3108 "sid",
3109};
3110
d33e787c 3111\f
3112/* Generalized Query Definitions */
3113
c44ddfa7 3114/* Multiple versions of the same query MUST be listed in ascending
3115 * order.
3116 */
3117
e41960ac 3118/* Note: For any query which uses prefetch_value, the vcnt should be
3119 * one less than the number of %-format specifiers in the tlist.
3120 */
3121
c44ddfa7 3122struct query Queries[] = {
d33e787c 3123 {
186dd63b 3124 /* Q_GALO - GET_ALL_LOGINS, v2 */
d33e787c 3125 "get_all_logins",
3126 "galo",
c44ddfa7 3127 2,
d33e787c 3128 RETRIEVE,
3129 "u",
03c05291 3130 USERS_TABLE,
3131 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
186dd63b 3132 galo2_fields,
d33e787c 3133 6,
0c345c78 3134 "u.users_id != 0",
d33e787c 3135 0,
29028043 3136 "u.login",
3137 0,
d33e787c 3138 },
5eaef520 3139
d33e787c 3140 {
186dd63b 3141 /* Q_GALO - GET_ALL_LOGINS, v3 */
3142 "get_all_logins",
3143 "galo",
3144 3,
3145 RETRIEVE,
3146 "u",
3147 USERS_TABLE,
3148 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
3149 galo_fields,
3150 7,
3151 "u.users_id != 0",
3152 0,
3153 "u.login",
3154 0,
3155 },
3156
3157 {
3158 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v2 */
d33e787c 3159 "get_all_active_logins",
3160 "gaal",
c44ddfa7 3161 2,
d33e787c 3162 RETRIEVE,
3163 "u",
03c05291 3164 USERS_TABLE,
3165 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
186dd63b 3166 galo2_fields,
d33e787c 3167 6,
0c345c78 3168 "u.status = 1",
d33e787c 3169 0,
29028043 3170 "u.login",
3171 0,
d33e787c 3172 },
5eaef520 3173
4ffa124a 3174 {
186dd63b 3175 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS, v3 */
3176 "get_all_active_logins",
3177 "gaal",
3178 3,
3179 RETRIEVE,
3180 "u",
3181 USERS_TABLE,
3182 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle FROM users u",
3183 galo_fields,
3184 7,
3185 "u.status = 1",
3186 0,
3187 "u.login",
3188 0,
3189 },
3190
3191 {
3192 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v2 */
0c345c78 3193 "get_user_account_by_login",
3194 "gual",
c44ddfa7 3195 2,
0c345c78 3196 RETRIEVE,
3197 "u",
03c05291 3198 USERS_TABLE,
d55429b2 3199 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3200 gual2_fields,
0c345c78 3201 15,
263a36d4 3202 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3203 1,
29028043 3204 "u.login",
0c345c78 3205 &gubl_validate,
4ffa124a 3206 },
5eaef520 3207
4ffa124a 3208 {
186dd63b 3209 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN, v3 */
3210 "get_user_account_by_login",
3211 "gual",
3212 3,
3213 RETRIEVE,
3214 "u",
3215 USERS_TABLE,
3216 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3217 gual_fields,
3218 16,
3219 "u.login LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3220 1,
3221 "u.login",
3222 &gubl_validate,
3223 },
3224
3225 {
3226 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v2 */
0c345c78 3227 "get_user_account_by_uid",
3228 "guau",
c44ddfa7 3229 2,
0c345c78 3230 RETRIEVE,
3231 "u",
03c05291 3232 USERS_TABLE,
d55429b2 3233 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3234 guau2_fields,
0c345c78 3235 15,
03c05291 3236 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3237 1,
29028043 3238 "u.login",
0c345c78 3239 &gubu_validate,
4ffa124a 3240 },
5eaef520 3241
4ffa124a 3242 {
186dd63b 3243 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID, v3 */
3244 "get_user_account_by_uid",
3245 "guau",
3246 3,
3247 RETRIEVE,
3248 "u",
3249 USERS_TABLE,
3250 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3251 guau_fields,
3252 16,
3253 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
3254 1,
3255 "u.login",
3256 &gubu_validate,
3257 },
3258
3259 {
3260 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v2 */
0c345c78 3261 "get_user_account_by_name",
3262 "guan",
c44ddfa7 3263 2,
0c345c78 3264 RETRIEVE,
3265 "u",
03c05291 3266 USERS_TABLE,
d55429b2 3267 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3268 guan2_fields,
0c345c78 3269 15,
263a36d4 3270 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
0c345c78 3271 2,
29028043 3272 "u.login",
60452f41 3273 &guan_validate,
4ffa124a 3274 },
5eaef520 3275
4ffa124a 3276 {
186dd63b 3277 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME, v3 */
3278 "get_user_account_by_name",
3279 "guan",
3280 3,
3281 RETRIEVE,
3282 "u",
3283 USERS_TABLE,
3284 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3285 guan_fields,
3286 16,
3287 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0 and u.comments = str.string_id",
3288 2,
3289 "u.login",
3290 &guan_validate,
3291 },
3292
3293 {
3294 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v2 */
0c345c78 3295 "get_user_account_by_class",
3296 "guac",
c44ddfa7 3297 2,
0c345c78 3298 RETRIEVE,
3299 "u",
03c05291 3300 USERS_TABLE,
d55429b2 3301 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3302 guac2_fields,
0c345c78 3303 15,
03c05291 3304 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3305 1,
29028043 3306 "u.login",
3307 &VDfix_modby,
4ffa124a 3308 },
5eaef520 3309
4ffa124a 3310 {
186dd63b 3311 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS, v3 */
3312 "get_user_account_by_class",
3313 "guac",
3314 3,
3315 RETRIEVE,
3316 "u",
3317 USERS_TABLE,
3318 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3319 guac_fields,
3320 16,
3321 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
3322 1,
3323 "u.login",
3324 &VDfix_modby,
3325 },
3326
3327 {
3328 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v2 */
0c345c78 3329 "get_user_account_by_id",
3330 "guai",
c44ddfa7 3331 2,
0c345c78 3332 RETRIEVE,
3333 "u",
03c05291 3334 USERS_TABLE,
d55429b2 3335 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
186dd63b 3336 guam2_fields,
0c345c78 3337 15,
263a36d4 3338 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
0c345c78 3339 1,
29028043 3340 "u.login",
263a36d4 3341 &VDfix_modby,
4ffa124a 3342 },
5eaef520 3343
d33e787c 3344 {
186dd63b 3345 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID, v3 */
3346 "get_user_account_by_id",
3347 "guai",
3348 3,
3349 RETRIEVE,
3350 "u",
3351 USERS_TABLE,
3352 "u.login, u.unix_uid, u.shell, u.winconsoleshell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, CHR(0), u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
3353 guam_fields,
3354 16,
3355 "u.clearid LIKE '%s' AND u.users_id != 0 AND u.comments = str.string_id",
3356 1,
3357 "u.login",
3358 &VDfix_modby,
3359 },
3360
3361 {
3362 /* Q_GUBL - GET_USER_BY_LOGIN, v2 */
d33e787c 3363 "get_user_by_login",
3364 "gubl",
c44ddfa7 3365 2,
d33e787c 3366 RETRIEVE,
3367 "u",
5eaef520 3368 USERS_TABLE,
03c05291 3369 "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",
186dd63b 3370 gubl2_fields,
d33e787c 3371 12,
263a36d4 3372 "u.login LIKE '%s' AND u.users_id != 0",
d33e787c 3373 1,
29028043 3374 "u.login",
f9f5c199 3375 &gubl_validate,
d33e787c 3376 },
5eaef520 3377
d33e787c 3378 {
186dd63b 3379 /* Q_GUBL - GET_USER_BY_LOGIN, v3 */
3380 "get_user_by_login",
3381 "gubl",
3382 3,
3383 RETRIEVE,
3384 "u",
3385 USERS_TABLE,
3386 "u.login, u.unix_uid, u.shell, u.winconsoleshell, 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",
3387 gubl_fields,
3388 13,
3389 "u.login LIKE '%s' AND u.users_id != 0",
3390 1,
3391 "u.login",
3392 &gubl_validate,
3393 },
3394
3395 {
3396 /* Q_GUBU - GET_USER_BY_UID, v2 */
d33e787c 3397 "get_user_by_uid",
3398 "gubu",
c44ddfa7 3399 2,
d33e787c 3400 RETRIEVE,
3401 "u",
03c05291 3402 USERS_TABLE,
3403 "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",
186dd63b 3404 gubu2_fields,
d33e787c 3405 12,
03c05291 3406 "u.unix_uid = %s AND u.users_id != 0",
d33e787c 3407 1,
29028043 3408 "u.login",
f9f5c199 3409 &gubu_validate,
d33e787c 3410 },
5eaef520 3411
d33e787c 3412 {
186dd63b 3413 /* Q_GUBU - GET_USER_BY_UID, v3 */
3414 "get_user_by_uid",
3415 "gubu",
3416 3,
3417 RETRIEVE,
3418 "u",
3419 USERS_TABLE,
3420 "u.login, u.unix_uid, u.shell, u.winconsoleshell, 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",
3421 gubu_fields,
3422 13,
3423 "u.unix_uid = %s AND u.users_id != 0",
3424 1,
3425 "u.login",
3426 &gubu_validate,
3427 },
3428
3429 {
3430 /* Q_GUBN - GET_USER_BY_NAME, v2 */
d33e787c 3431 "get_user_by_name",
3432 "gubn",
c44ddfa7 3433 2,
d33e787c 3434 RETRIEVE,
3435 "u",
03c05291 3436 USERS_TABLE,
3437 "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",
186dd63b 3438 gubn2_fields,
d33e787c 3439 12,
263a36d4 3440 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
d33e787c 3441 2,
29028043 3442 "u.login",
99e09b48 3443 &gubn_validate,
d33e787c 3444 },
5eaef520 3445
d33e787c 3446 {
186dd63b 3447 /* Q_GUBN - GET_USER_BY_NAME, v3 */
3448 "get_user_by_name",
3449 "gubn",
3450 3,
3451 RETRIEVE,
3452 "u",
3453 USERS_TABLE,
3454 "u.login, u.unix_uid, u.shell, u.winconsoleshell, 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",
3455 gubn_fields,
3456 13,
3457 "u.first LIKE '%s' AND u.last LIKE '%s' AND u.users_id != 0",
3458 2,
3459 "u.login",
3460 &gubn_validate,
3461 },
3462
3463 {
3464 /* Q_GUBC - GET_USER_BY_CLASS, v2 */
d33e787c 3465 "get_user_by_class",
3466 "gubc",
c44ddfa7 3467 2,
d33e787c 3468 RETRIEVE,
3469 "u",
03c05291 3470 USERS_TABLE,
3471 "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",
186dd63b 3472 gubc2_fields,
d33e787c 3473 12,
03c05291 3474 "u.type = UPPER('%s') AND u.users_id != 0",
d33e787c 3475 1,
29028043 3476 "u.login",
3477 &VDfix_modby,
d33e787c 3478 },
5eaef520 3479
d33e787c 3480 {
186dd63b 3481 /* Q_GUBC - GET_USER_BY_CLASS, v3 */
3482 "get_user_by_class",
3483 "gubc",
3484 3,
3485 RETRIEVE,
3486 "u",
3487 USERS_TABLE,
3488 "u.login, u.unix_uid, u.shell, u.winconsoleshell, 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",
3489 gubc_fields,
3490 13,
3491 "u.type = UPPER('%s') AND u.users_id != 0",
3492 1,
3493 "u.login",
3494 &VDfix_modby,
3495 },
3496
3497 {
3498 /* Q_GUBM - GET_USER_BY_MITID, v2 */
d33e787c 3499 "get_user_by_mitid",
3500 "gubm",
c44ddfa7 3501 2,
d33e787c 3502 RETRIEVE,
3503 "u",
03c05291 3504 USERS_TABLE,
3505 "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",
186dd63b 3506 gubm2_fields,
d33e787c 3507 12,
263a36d4 3508 "u.clearid LIKE '%s' AND u.users_id != 0",
d33e787c 3509 1,
29028043 3510 "u.login",
263a36d4 3511 &VDfix_modby,
d33e787c 3512 },
5eaef520 3513
4ffa124a 3514 {
186dd63b 3515 /* Q_GUBM - GET_USER_BY_MITID, v3 */
3516 "get_user_by_mitid",
3517 "gubm",
3518 3,
3519 RETRIEVE,
3520 "u",
3521 USERS_TABLE,
3522 "u.login, u.unix_uid, u.shell, u.winconsoleshell, 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",
3523 gubm_fields,
3524 13,
3525 "u.clearid LIKE '%s' AND u.users_id != 0",
3526 1,
3527 "u.login",
3528 &VDfix_modby,
3529 },
3530
3531 {
3532 /* Q_AUAC - ADD_USER_ACCOUNT, v2 */ /* uses prefetch_value() for users_id */
4ffa124a 3533 "add_user_account",
3534 "auac",
c44ddfa7 3535 2,
4ffa124a 3536 APPEND,
3537 "u",
03c05291 3538 USERS_TABLE,
d55429b2 3539 /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
3540 * but using up one argv element.
3541 */
3542 "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, NVL(CHR(0), '%s'), %s, %s)",
186dd63b 3543 auac2_fields,
4ffa124a 3544 12,
7ac48069 3545 NULL,
4ffa124a 3546 0,
29028043 3547 NULL,
186dd63b 3548 &auac2_validate,
3549 },
3550
3551 {
3552 /* Q_AUAC - ADD_USER_ACCOUNT, v3 */ /* uses prefetch_value() for users_id */
3553 "add_user_account",
3554 "auac",
3555 3,
3556 APPEND,
3557 "u",
3558 USERS_TABLE,
3559 /* We set signature to "NVL(CHR(0), '%s')", which is to say, "CHR(0)",
3560 * but using up one argv element.
3561 */
3562 "INTO users (login, unix_uid, shell, winconsoleshell, 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)), NVL('%s', CHR(0)), %s, NVL('%s', CHR(0)), '%s', %d, NVL(CHR(0), '%s'), %s, %s)",
3563 auac_fields,
3564 13,
3565 NULL,
3566 0,
3567 NULL,
4ffa124a 3568 &auac_validate,
3569 },
5eaef520 3570
d33e787c 3571 {
186dd63b 3572 /* Q_AUSR - ADD_USER, v2 */ /* uses prefetch_value() for users_id */
d33e787c 3573 "add_user",
3574 "ausr",
c44ddfa7 3575 2,
d33e787c 3576 APPEND,
3577 "u",
03c05291 3578 USERS_TABLE,
5eaef520 3579 "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)",
186dd63b 3580 auac2_fields,
d33e787c 3581 9,
45bf7573 3582 0,
d33e787c 3583 0,
29028043 3584 NULL,
186dd63b 3585 &ausr2_validate,
3586 },
3587
3588 {
3589 /* Q_AUSR - ADD_USER, v3 */ /* uses prefetch_value() for users_id */
3590 "add_user",
3591 "ausr",
3592 3,
3593 APPEND,
3594 "u",
3595 USERS_TABLE,
3596 "INTO users (login, unix_uid, shell, winconsoleshell, 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)",
3597 auac_fields,
3598 10,
3599 0,
3600 0,
3601 NULL,
d33e787c 3602 &ausr_validate,
3603 },
5eaef520 3604
d33e787c 3605 {
3606 /* Q_RUSR - REGISTER_USER */
3607 "register_user",
3608 "rusr",
c44ddfa7 3609 2,
d33e787c 3610 APPEND,
3611 0,
3612 0,
3613 0,
3614 rusr_fields,
3615 3,
3616 0,
3617 0,
29028043 3618 NULL,
d33e787c 3619 &rusr_validate,
3620 },
5eaef520 3621
4ffa124a 3622 {
186dd63b 3623 /* Q_UUAC - UPDATE_USER_ACCOUNT, v2 */
4ffa124a 3624 "update_user_account",
3625 "uuac",
c44ddfa7 3626 2,
4ffa124a 3627 UPDATE,
3628 "u",
03c05291 3629 USERS_TABLE,
d55429b2 3630 /* See comment in auac about signature. */
3631 "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 = NVL(CHR(0), '%s'), secure = %s",
186dd63b 3632 uuac2_fields,
4ffa124a 3633 12,
3634 "users_id = %d",
3635 1,
29028043 3636 NULL,
186dd63b 3637 &uuac2_validate,
3638 },
3639
3640 {
3641 /* Q_UUAC - UPDATE_USER_ACCOUNT, v3 */
3642 "update_user_account",
3643 "uuac",
3644 3,
3645 UPDATE,
3646 "u",
3647 USERS_TABLE,
3648 /* See comment in auac about signature. */
3649 "users SET login = '%s', unix_uid = %s, shell = '%s', winconsoleshell = '%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 = NVL(CHR(0), '%s'), secure = %s",
3650 uuac_fields,
3651 13,
3652 "users_id = %d",
3653 1,
3654 NULL,
4ffa124a 3655 &uuac_validate,
3656 },
5eaef520 3657
d33e787c 3658 {
186dd63b 3659 /* Q_UUSR - UPDATE_USER, v2 */
d33e787c 3660 "update_user",
3661 "uusr",
c44ddfa7 3662 2,
d33e787c 3663 UPDATE,
3664 "u",
03c05291 3665 USERS_TABLE,
5eaef520 3666 "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'",
186dd63b 3667 uuac2_fields,
d33e787c 3668 9,
4e5ec77f 3669 "users_id = %d",
d33e787c 3670 1,
29028043 3671 NULL,
186dd63b 3672 &uusr2_validate,
3673 },
3674
3675 {
3676 /* Q_UUSR - UPDATE_USER, v3 */
3677 "update_user",
3678 "uusr",
3679 3,
3680 UPDATE,
3681 "u",
3682 USERS_TABLE,
3683 "users SET login = '%s', unix_uid = %s, shell = '%s', winconsoleshell = '%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'",
3684 uuac_fields,
3685 10,
3686 "users_id = %d",
3687 1,
3688 NULL,
d33e787c 3689 &uusr_validate,
3690 },
3691
3692 {
3693 /* Q_UUSH - UPDATE_USER_SHELL */
3694 "update_user_shell",
3695 "uush",
c44ddfa7 3696 2,
d33e787c 3697 UPDATE,
3698 "u",
03c05291 3699 USERS_TABLE,
5eaef520 3700 "users SET shell = '%s'",
d33e787c 3701 uush_fields,
3702 1,
4e5ec77f 3703 "users_id = %d",
d33e787c 3704 1,
29028043 3705 NULL,
d33e787c 3706 &uush_validate,
3707 },
3708
29dbfca4 3709 {
3710 /* Q_UUWS - UPDATE_USER_WINDOWS_SHELL */
3711 "update_user_windows_shell",
3712 "uuws",
3713 2,
3714 UPDATE,
3715 "u",
3716 USERS_TABLE,
3717 "users SET winconsoleshell = '%s'",
3718 uuws_fields,
3719 1,
3720 "users_id = %d",
3721 1,
3722 NULL,
3723 &uuws_validate,
3724 },
3725
d33e787c 3726 {
3727 /* Q_UUST - UPDATE_USER_STATUS */
3728 "update_user_status",
3729 "uust",
c44ddfa7 3730 2,
d33e787c 3731 UPDATE,
3732 "u",
03c05291 3733 USERS_TABLE,
4e5ec77f 3734 "users SET status = %s",
d33e787c 3735 uust_fields,
3736 1,
4e5ec77f 3737 "users_id = %d",
d33e787c 3738 1,
29028043 3739 NULL,
d33e787c 3740 &uust_validate,
3741 },
3742
4ffa124a 3743 {
3744 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
3745 "update_user_security_status",
3746 "uuss",
c44ddfa7 3747 2,
4ffa124a 3748 UPDATE,
3749 "u",
03c05291 3750 USERS_TABLE,
135dcb80 3751 "users SET secure = %s",
4ffa124a 3752 uuss_fields,
3753 1,
3754 "users_id = %d",
3755 1,
29028043 3756 NULL,
4ffa124a 3757 &uust_validate,
3758 },
5eaef520 3759
d33e787c 3760 {
5eaef520 3761 /* Q_DUSR - DELETE_USER */
d33e787c 3762 "delete_user",
3763 "dusr",
c44ddfa7 3764 2,
d33e787c 3765 DELETE,
3766 "u",
03c05291 3767 USERS_TABLE,
7ac48069 3768 NULL,
d33e787c 3769 dusr_fields,
3770 0,
4e5ec77f 3771 "users_id = %d",
d33e787c 3772 1,
29028043 3773 NULL,
d33e787c 3774 &dusr_validate,
3775 },
3776
77eb4bdf 3777 {
3778 /* Q_AURV - ADD_USER_RESERVATION */
3779 "add_user_reservation",
3780 "aurv",
3781 2,
3782 UPDATE,
3783 0,
3784 USERS_TABLE,
3785 0,
3786 aurv_fields,
3787 2,
3788 0,
3789 0,
3790 NULL,
3791 &aurv_validate,
3792 },
3793
3794 {
3795 /* Q_GURV - GET_USER_RESERVATIONS */
3796 "get_user_reservations",
3797 "gurv",
3798 2,
3799 RETRIEVE,
3800 0,
3801 USERS_TABLE,
3802 0,
3803 gurv_fields,
3804 2,
3805 0,
3806 1,
3807 NULL,
3808 &gurv_validate,
3809 },
3810
3811 {
3812 /* Q_GUBR - GET_USER_BY_RESERVATION */
3813 "get_user_by_reservation",
3814 "gubr",
3815 2,
3816 RETRIEVE,
3817 0,
3818 USERS_TABLE,
3819 0,
3820 gubr_fields,
3821 1,
3822 0,
3823 1,
3824 NULL,
3825 &gubr_validate,
3826 },
3827
3828 {
3829 /* Q_DURV - DELETE_USER_RESERVATION */
3830 "delete_user_reservation",
3831 "durv",
3832 2,
3833 UPDATE,
3834 0,
3835 USERS_TABLE,
3836 0,
3837 aurv_fields,
3838 2,
3839 0,
3840 0,
3841 NULL,
3842 &aurv_validate,
3843 },
3844
012fc215 3845 {
5eaef520 3846 /* Q_GKUM - GET_KERBEROS_USER_MAP */
012fc215 3847 "get_kerberos_user_map",
3848 "gkum",
c44ddfa7 3849 2,
012fc215 3850 RETRIEVE,
3851 "k",
03c05291 3852 KRBMAP_TABLE,
3853 "u.login, str.string FROM krbmap km, users u, strings str",
012fc215 3854 gkum_fields,
3855 2,
263a36d4 3856 "u.login LIKE '%s' AND str.string LIKE '%s' AND km.users_id = u.users_id AND km.string_id = str.string_id",
012fc215 3857 2,
29028043 3858 "u.login, str.string",
263a36d4 3859 NULL,
012fc215 3860 },
3861
3862 {
3863 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3864 "add_kerberos_user_map",
3865 "akum",
c44ddfa7 3866 2,
012fc215 3867 APPEND,
3868 "k",
03c05291 3869 KRBMAP_TABLE,
99e09b48 3870 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
012fc215 3871 akum_fields,
3872 2,
3873 0,
3874 0,
29028043 3875 NULL,
012fc215 3876 &akum_validate,
3877 },
3878
3879 {
3880 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3881 "delete_kerberos_user_map",
3882 "dkum",
c44ddfa7 3883 2,
012fc215 3884 DELETE,
3885 "k",
03c05291 3886 KRBMAP_TABLE,
012fc215 3887 0,
3888 akum_fields,
3889 0,
99e09b48 3890 "users_id = %d AND string_id = %d",
012fc215 3891 2,
29028043 3892 NULL,
012fc215 3893 &dkum_validate,
3894 },
3895
d33e787c 3896 {
3897 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3898 "get_finger_by_login",
3899 "gfbl",
c44ddfa7 3900 2,
d33e787c 3901 RETRIEVE,
3902 "u",
03c05291 3903 USERS_TABLE,
3904 "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 3905 gfbl_fields,
3906 12,
03c05291 3907 "users_id = %d",
d33e787c 3908 1,
29028043 3909 "login",
d33e787c 3910 &gfbl_validate,
3911 },
3912
3913 {
3914 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3915 "update_finger_by_login",
3916 "ufbl",
c44ddfa7 3917 2,
d33e787c 3918 UPDATE,
3919 "u",
03c05291 3920 USERS_TABLE,
5eaef520 3921 "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 3922 ufbl_fields,
3923 8,
4e5ec77f 3924 "users_id = %d",
d33e787c 3925 1,
29028043 3926 NULL,
d33e787c 3927 &ufbl_validate,
3928 },
3929
3930 {
3931 /* Q_GPOB - GET_POBOX */
3932 "get_pobox",
3933 "gpob",
c44ddfa7 3934 2,
d33e787c 3935 RETRIEVE,
3936 "u",
03c05291 3937 USERS_TABLE,
d6d830a1 3938 "login, potype, users_id, CHR(0), TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
d33e787c 3939 gpob_fields,
d6d830a1 3940 7,
03c05291 3941 "users_id = %d",
d33e787c 3942 1,
29028043 3943 "login",
d33e787c 3944 &gpob_validate,
3945 },
3946
3947 {
3948 /* Q_GAPO - GET_ALL_POBOXES */
3949 "get_all_poboxes",
3950 "gapo",
c44ddfa7 3951 2,
d33e787c 3952 RETRIEVE,
3953 "u",
03c05291 3954 USERS_TABLE,
3955 "login, potype, pop_id || ':' || box_id FROM users",
d33e787c 3956 gpox_fields,
3957 3,
03c05291 3958 "potype != 'NONE'",
d33e787c 3959 0,
29028043 3960 "login",
d33e787c 3961 &gpox_validate,
3962 },
5eaef520 3963
d33e787c 3964 {
3965 /* Q_GPOP - GET_POBOXES_POP */
3966 "get_poboxes_pop",
3967 "gpop",
c44ddfa7 3968 2,
d33e787c 3969 RETRIEVE,
3970 "u",
03c05291 3971 USERS_TABLE,
17cb3de8 3972 "login, potype, users_id FROM users",
d33e787c 3973 gpox_fields,
3974 3,
03c05291 3975 "potype = 'POP'",
d33e787c 3976 0,
29028043 3977 "login",
d33e787c 3978 &gpox_validate
3979 },
3980
3981 {
3982 /* Q_GPOF - GET_POBOXES_SMTP */
3983 "get_poboxes_smtp",
3984 "gpos",
c44ddfa7 3985 2,
d33e787c 3986 RETRIEVE,
3987 "u",
03c05291 3988 USERS_TABLE,
17cb3de8 3989 "login, potype, users_id FROM users",
d33e787c 3990 gpox_fields,
3991 3,
03c05291 3992 "potype = 'SMTP'",
d33e787c 3993 0,
29028043 3994 "login",
d33e787c 3995 &gpox_validate
3996 },
3997
3998 {
3999 /* Q_SPOB - SET_POBOX */
4000 "set_pobox",
4001 "spob",
c44ddfa7 4002 2,
d33e787c 4003 UPDATE,
4004 0,
03c05291 4005 USERS_TABLE,
d33e787c 4006 0,
4007 spob_fields,
4008 3,
7ac48069 4009 NULL,
d33e787c 4010 0,
29028043 4011 NULL,
d33e787c 4012 &spob_validate,
4013 },
4014
4015 {
4016 /* Q_SPOP - SET_POBOX_POP */
4017 "set_pobox_pop",
4018 "spop",
c44ddfa7 4019 2,
d33e787c 4020 UPDATE,
8b0fdf05 4021 0,
03c05291 4022 USERS_TABLE,
17cb3de8 4023 0,
d33e787c 4024 spob_fields,
8b0fdf05 4025 1,
17cb3de8 4026 NULL,
4027 0,
29028043 4028 NULL,
d33e787c 4029 &spop_validate,
4030 },
4031
4032 {
4033 /* Q_DPOB - DELETE_POBOX */
4034 "delete_pobox",
4035 "dpob",
c44ddfa7 4036 2,
d33e787c 4037 UPDATE,
4038 "u",
03c05291 4039 USERS_TABLE,
4040 "users SET potype = 'NONE'",
4041 spob_fields,
4042 0,
4043 "users_id = %d",
d33e787c 4044 1,
29028043 4045 NULL,
03c05291 4046 &dpob_validate,
d33e787c 4047 },
4048
4049 {
e4ae0190 4050 /* Q_GHST - GET_HOST, v2 */
a66a2204 4051 "get_host",
4052 "ghst",
c44ddfa7 4053 2,
a66a2204 4054 RETRIEVE,
4055 "m",
03c05291 4056 MACHINE_TABLE,
4057 "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",
e4ae0190 4058 ghst2_fields,
a66a2204 4059 21,
1fa08fc4 4060 "m.name LIKE UPPER('%s') AND m.address LIKE '%s' AND m.location LIKE UPPER('%s') AND s.name LIKE UPPER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
a66a2204 4061 4,
29028043 4062 "m.name",
a66a2204 4063 &ghst_validate,
4064 },
4065
9333756a 4066 {
e4ae0190 4067 /* Q_GHST - GET_HOST, v6 */
4068 "get_host",
4069 "ghst",
4070 6,
4071 RETRIEVE,
4072 "m",
4073 MACHINE_TABLE,
4074 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.billing_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",
4075 ghst_fields,
4076 22,
4077 "m.name LIKE UPPER('%s') AND m.address LIKE '%s' AND m.location LIKE UPPER('%s') AND s.name LIKE UPPER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
4078 4,
4079 "m.name",
4080 &ghst_validate,
4081 },
4082
4083 {
4084 /* Q_GHBH - GET_HOST_BY_HWADDR, v2 */
9333756a 4085 "get_host_by_hwaddr",
4086 "ghbh",
c44ddfa7 4087 2,
9333756a 4088 RETRIEVE,
4089 "m",
4090 MACHINE_TABLE,
4091 "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",
e4ae0190 4092 ghbh2_fields,
9333756a 4093 21,
4094 "m.hwaddr LIKE LOWER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
4095 1,
4096 "m.name",
012e079f 4097 &ghst_validate,
9333756a 4098 },
4099
e4ae0190 4100 {
4101 /* Q_GHBH - GET_HOST_BY_HWADDR, v6 */
4102 "get_host_by_hwaddr",
4103 "ghbh",
4104 6,
4105 RETRIEVE,
4106 "m",
4107 MACHINE_TABLE,
4108 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.billing_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",
4109 ghbh_fields,
4110 22,
4111 "m.hwaddr LIKE LOWER('%s') AND m.mach_id != 0 AND s.snet_id = m.snet_id",
4112 1,
4113 "m.name",
4114 &ghst_validate,
4115 },
4116
2884200f 4117 {
4118 /* Q_GHHA - GET_HOST_HWADDR */
4119 "get_host_hwaddr",
4120 "ghha",
c44ddfa7 4121 2,
2884200f 4122 RETRIEVE,
4123 "m",
4124 MACHINE_TABLE,
4125 "m.hwaddr FROM machine m",
4126 ghha_fields,
4127 1,
4128 "m.name LIKE UPPER('%s')",
4129 1,
4130 NULL,
4131 NULL,
4132 },
4133
a66a2204 4134 {
e4ae0190 4135 /* Q_AHST - ADD_HOST, v2 */ /* uses prefetch_value() for mach_id */
a66a2204 4136 "add_host",
4137 "ahst",
c44ddfa7 4138 2,
d33e787c 4139 APPEND,
4140 "m",
03c05291 4141 MACHINE_TABLE,
5eaef520 4142 "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)",
e4ae0190 4143 ahst2_fields,
a66a2204 4144 14,
45bf7573 4145 0,
d33e787c 4146 0,
29028043 4147 NULL,
e4ae0190 4148 &ahst2_validate,
4149 },
4150
4151 {
4152 /* Q_AHST - ADD_HOST, v6 */ /* uses prefetch_value() for mach_id */
4153 "add_host",
4154 "ahst",
4155 6,
4156 APPEND,
4157 "m",
4158 MACHINE_TABLE,
4159 "INTO machine (name, vendor, model, os, location, contact, billing_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)), NVL('%s', CHR(0)), %s, %s, SYSDATE, %d, '%s', '%s', %d, %d, %d, SYSDATE, SYSDATE, %s, %s)",
4160 ahst_fields,
4161 15,
4162 0,
4163 0,
4164 NULL,
a66a2204 4165 &ahst_validate,
d33e787c 4166 },
4167
4168 {
e4ae0190 4169 /* Q_UHST - UPDATE_HOST, v2 */
a66a2204 4170 "update_host",
4171 "uhst",
c44ddfa7 4172 2,
d33e787c 4173 UPDATE,
4174 "m",
03c05291 4175 MACHINE_TABLE,
5eaef520 4176 "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",
e4ae0190 4177 uhst2_fields,
a66a2204 4178 14,
4e5ec77f 4179 "mach_id = %d",
d33e787c 4180 1,
29028043 4181 NULL,
e4ae0190 4182 &uhst2_validate,
4183 },
4184
4185 {
4186 /* Q_UHST - UPDATE_HOST, v6 */
4187 "update_host",
4188 "uhst",
4189 6,
4190 UPDATE,
4191 "m",
4192 MACHINE_TABLE,
4193 "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)), billing_contact = NVL('%s', CHR(0)), use = %s, status = %s, snet_id = %d, address = '%s', owner_type = '%s', owner_id = %d, acomment = %d, ocomment = %d",
4194 uhst_fields,
4195 15,
4196 "mach_id = %d",
4197 1,
4198 NULL,
a66a2204 4199 &uhst_validate,
d33e787c 4200 },
4201
2884200f 4202 {
4203 /* Q_UHHA - UPDATE_HOST_HWADDR */
4204 "update_host_hwaddr",
4205 "uhha",
c44ddfa7 4206 2,
2884200f 4207 UPDATE,
4208 "m",
4209 MACHINE_TABLE,
1fdf882a 4210 "machine SET hwaddr = NVL('%s', CHR(0))",
2884200f 4211 uhha_fields,
4212 1,
4213 "mach_id = %d",
4214 1,
4215 NULL,
4216 &uhha_validate,
4217 },
4218
d33e787c 4219 {
a66a2204 4220 /* Q_DHST - DELETE_HOST */
4221 "delete_host",
4222 "dhst",
c44ddfa7 4223 2,
d33e787c 4224 DELETE,
4225 "m",
03c05291 4226 MACHINE_TABLE,
7ac48069 4227 NULL,
a66a2204 4228 dhst_fields,
d33e787c 4229 0,
4e5ec77f 4230 "mach_id = %d",
d33e787c 4231 1,
29028043 4232 NULL,
a66a2204 4233 &dhst_validate,
4234 },
4235
03c05291 4236 {
4237 /* Q_GMAC - GET_MACHINE */
4238 "get_machine",
4239 "gmac",
c44ddfa7 4240 2,
03c05291 4241 RETRIEVE,
4242 "m",
4243 MACHINE_TABLE,
4244 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
4245 gmac_fields,
4246 5,
263a36d4 4247 "name LIKE UPPER('%s') AND mach_id != 0",
03c05291 4248 1,
29028043 4249 "name",
263a36d4 4250 &VDfix_modby,
03c05291 4251 },
4252
a66a2204 4253 {
4254 /* Q_GHAL - GET_HOSTALIAS */
4255 "get_hostalias",
4256 "ghal",
c44ddfa7 4257 2,
a66a2204 4258 RETRIEVE,
03c05291 4259 "a",
4260 HOSTALIAS_TABLE,
4261 "a.name, m.name FROM hostalias a, machine m",
a66a2204 4262 ghal_fields,
4263 2,
263a36d4 4264 "m.mach_id = a.mach_id and a.name LIKE UPPER('%s') AND m.name LIKE UPPER('%s')",
a66a2204 4265 2,
29028043 4266 "a.name",
a66a2204 4267 &ghal_validate,
4268 },
4269
4270 {
4271 /* Q_AHAL - ADD_HOSTALIAS */
4272 "add_hostalias",
4273 "ahal",
c44ddfa7 4274 2,
a66a2204 4275 APPEND,
4276 "a",
03c05291 4277 HOSTALIAS_TABLE,
5eaef520 4278 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'), %d)",
a66a2204 4279 ghal_fields,
4280 2,
4281 0,
4282 0,
29028043 4283 NULL,
a66a2204 4284 &ahal_validate,
4285 },
4286
4287 {
4288 /* Q_DHAL - DELETE_HOSTALIAS */
4289 "delete_hostalias",
4290 "dhal",
c44ddfa7 4291 2,
a66a2204 4292 DELETE,
4293 "a",
03c05291 4294 HOSTALIAS_TABLE,
7ac48069 4295 NULL,
a66a2204 4296 ghal_fields,
4297 0,
03c05291 4298 "name = UPPER('%s') AND mach_id = %d",
a66a2204 4299 2,
29028043 4300 NULL,
a66a2204 4301 &dhal_validate,
d33e787c 4302 },
4303
3c1d412c 4304 {
4305 /* Q_GSNT - GET_SUBNET */
4306 "get_subnet",
4307 "gsnt",
c44ddfa7 4308 2,
3c1d412c 4309 RETRIEVE,
4310 "s",
03c05291 4311 SUBNET_TABLE,
4312 "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 4313 gsnt_fields,
bd8c26ff 4314 12,
5e8fdad1 4315 "name LIKE UPPER('%s')",
3c1d412c 4316 1,
29028043 4317 "name",
3c1d412c 4318 &gsnt_validate,
4319 },
4320
4321 {
4322 /* Q_ASNT - ADD_SUBNET */
4323 "add_subnet",
4324 "asnt",
c44ddfa7 4325 2,
3c1d412c 4326 APPEND,
4327 "s",
03c05291 4328 SUBNET_TABLE,
5eaef520 4329 "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 4330 asnt_fields,
bd8c26ff 4331 9,
3c1d412c 4332 0,
4333 0,
29028043 4334 NULL,
3c1d412c 4335 &asnt_validate,
4336 },
4337
4338 {
4339 /* Q_USNT - UPDATE_SUBNET */
4340 "update_subnet",
4341 "usnt",
c44ddfa7 4342 2,
3c1d412c 4343 UPDATE,
4344 "s",
03c05291 4345 SUBNET_TABLE,
5eaef520 4346 "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 4347 usnt_fields,
bd8c26ff 4348 9,
3c1d412c 4349 "snet_id = %d",
4350 1,
29028043 4351 NULL,
3c1d412c 4352 &usnt_validate,
4353 },
4354
4355 {
4356 /* Q_DSNT - DELETE_SUBNET */
4357 "delete_subnet",
4358 "dsnt",
c44ddfa7 4359 2,
3c1d412c 4360 DELETE,
4361 "s",
03c05291 4362 SUBNET_TABLE,
7ac48069 4363 NULL,
3c1d412c 4364 dsnt_fields,
4365 0,
4366 "snet_id = %d",
4367 1,
29028043 4368 NULL,
3c1d412c 4369 &dsnt_validate,
4370 },
4371
d33e787c 4372 {
4373 /* Q_GCLU - GET_CLUSTER */
4374 "get_cluster",
4375 "gclu",
c44ddfa7 4376 2,
d33e787c 4377 RETRIEVE,
4378 "c",
e688520a 4379 CLUSTERS_TABLE,
03c05291 4380 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
d33e787c 4381 gclu_fields,
4382 6,
263a36d4 4383 "name LIKE '%s' AND clu_id != 0",
d33e787c 4384 1,
29028043 4385 "name",
263a36d4 4386 &VDfix_modby,
d33e787c 4387 },
4388
4389 {
45bf7573 4390 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
d33e787c 4391 "add_cluster",
4392 "aclu",
c44ddfa7 4393 2,
d33e787c 4394 APPEND,
4395 "c",
e688520a 4396 CLUSTERS_TABLE,
5eaef520 4397 "INTO clusters (name, description, location, clu_id) VALUES ('%s', NVL('%s', CHR(0)), NVL('%s', CHR(0)), %s)",
d33e787c 4398 aclu_fields,
4399 3,
45bf7573 4400 0,
d33e787c 4401 0,
29028043 4402 NULL,
d33e787c 4403 &aclu_validate,
4404 },
4405
4406 {
4407 /* Q_UCLU - UPDATE_CLUSTER */
4408 "update_cluster",
4409 "uclu",
c44ddfa7 4410 2,
d33e787c 4411 UPDATE,
4412 "c",
e688520a 4413 CLUSTERS_TABLE,
5eaef520 4414 "clusters SET name = '%s', description = NVL('%s', CHR(0)), location = NVL('%s', CHR(0))",
d33e787c 4415 uclu_fields,
4416 3,
4e5ec77f 4417 "clu_id = %d",
d33e787c 4418 1,
29028043 4419 NULL,
d33e787c 4420 &uclu_validate,
4421 },
4422
4423 {
4424 /* Q_DCLU - DELETE_CLUSTER */
4425 "delete_cluster",
4426 "dclu",
c44ddfa7 4427 2,
d33e787c 4428 DELETE,
4429 "c",
e688520a 4430 CLUSTERS_TABLE,
7ac48069 4431 NULL,
d33e787c 4432 dclu_fields,
4433 0,
4e5ec77f 4434 "clu_id = %d",
d33e787c 4435 1,
29028043 4436 NULL,
d33e787c 4437 &dclu_validate,
4438 },
4439
4440 {
5eaef520 4441 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
d33e787c 4442 "get_machine_to_cluster_map",
4443 "gmcm",
c44ddfa7 4444 2,
d33e787c 4445 RETRIEVE,
0c345c78 4446 "mcm",
03c05291 4447 MCMAP_TABLE,
4448 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
d33e787c 4449 gmcm_fields,
4450 2,
263a36d4 4451 "m.name LIKE UPPER('%s') AND c.name LIKE '%s' AND mcm.clu_id = c.clu_id AND mcm.mach_id = m.mach_id",
d33e787c 4452 2,
29028043 4453 "m.name",
263a36d4 4454 NULL,
d33e787c 4455 },
5eaef520 4456
d33e787c 4457 {
4458 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
4459 "add_machine_to_cluster",
4460 "amtc",
c44ddfa7 4461 2,
d33e787c 4462 APPEND,
0c345c78 4463 "mcm",
03c05291 4464 MCMAP_TABLE,
4e5ec77f 4465 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
d33e787c 4466 gmcm_fields,
4467 2,
4468 0,
4469 0,
29028043 4470 NULL,
d33e787c 4471 &amtc_validate,
4472 },
4473
4474 {
4475 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
4476 "delete_machine_from_cluster",
4477 "dmfc",
c44ddfa7 4478 2,
d33e787c 4479 DELETE,
0c345c78 4480 "mcm",
03c05291 4481 MCMAP_TABLE,
d33e787c 4482 0,
4483 gmcm_fields,
4484 0,
4e5ec77f 4485 "mach_id = %d AND clu_id = %d",
d33e787c 4486 2,
29028043 4487 NULL,
d33e787c 4488 &amtc_validate,
4489 },
4490
4491 {
68dd808d 4492 /* Q_GCLD - GET_CLUSTER_DATA */
d33e787c 4493 "get_cluster_data",
4494 "gcld",
c44ddfa7 4495 2,
d33e787c 4496 RETRIEVE,
d33e787c 4497 "svc",
03c05291 4498 SVC_TABLE,
4499 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
d33e787c 4500 gcld_fields,
4501 3,
263a36d4 4502 "c.clu_id = svc.clu_id AND c.name LIKE '%s' AND svc.serv_label LIKE '%s'",
d33e787c 4503 2,
29028043 4504 "c.name, svc.serv_label",
263a36d4 4505 NULL,
d33e787c 4506 },
4507
4508 {
4509 /* Q_ACLD - ADD_CLUSTER_DATA */
4510 "add_cluster_data",
4511 "acld",
c44ddfa7 4512 2,
d33e787c 4513 APPEND,
0c345c78 4514 "svc",
03c05291 4515 SVC_TABLE,
5eaef520 4516 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d, '%s', '%s')",
88343c5e 4517 acld_fields,
d33e787c 4518 3,
7ac48069 4519 NULL,
d33e787c 4520 0,
29028043 4521 NULL,
d33e787c 4522 &acld_validate,
4523 },
4524
4525 {
4526 /* Q_DCLD - DELETE_CLUSTER_DATA */
4527 "delete_cluster_data",
4528 "dcld",
c44ddfa7 4529 2,
d33e787c 4530 DELETE,
0c345c78 4531 "svc",
03c05291 4532 SVC_TABLE,
7ac48069 4533 NULL,
88343c5e 4534 acld_fields,
d33e787c 4535 0,
5eaef520 4536 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
d33e787c 4537 3,
29028043 4538 NULL,
99e09b48 4539 &dcld_validate,
d33e787c 4540 },
4541
03c05291 4542 {
44da57b2 4543 /* Q_GLIN - GET_LIST_INFO, v2 */
03c05291 4544 "get_list_info",
4545 "glin",
c44ddfa7 4546 2,
03c05291 4547 RETRIEVE,
263a36d4 4548 "l",
03c05291 4549 LIST_TABLE,
ccdbc974 4550 "name, active, publicflg, hidden, maillist, grouplist, gid, acl_type, acl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
44da57b2 4551 glin2_fields,
03c05291 4552 13,
263a36d4 4553 "name LIKE '%s'",
5eaef520 4554 1,
263a36d4 4555 "name",
5eaef520 4556 &glin_validate,
03c05291 4557 },
5eaef520 4558
44da57b2 4559 {
4560 /* Q_GLIN - GET_LIST_INFO, v3 */
4561 "get_list_info",
4562 "glin",
4563 3,
4564 RETRIEVE,
4565 "l",
4566 LIST_TABLE,
4567 "name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
59c3208b 4568 glin3_fields,
44da57b2 4569 14,
4570 "name LIKE '%s'",
4571 1,
4572 "name",
4573 &glin_validate,
4574 },
4575
59c3208b 4576 {
4577 /* Q_GLIN - GET_LIST_INFO, v4 */
4578 "get_list_info",
4579 "glin",
4580 4,
4581 RETRIEVE,
4582 "l",
4583 LIST_TABLE,
4584 "name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, memacl_type, memacl_id, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM list",
4585 glin_fields,
4586 16,
4587 "name LIKE '%s'",
4588 1,
4589 "name",
4590 &glin_validate,
4591 },
4592
03c05291 4593 {
4594 /* Q_EXLN - EXPAND_LIST_NAMES */
4595 "expand_list_names",
4596 "exln",
c44ddfa7 4597 2,
03c05291 4598 RETRIEVE,
4599 "l",
4600 LIST_TABLE,
4601 "name FROM list",
4602 glin_fields,
4603 1,
263a36d4 4604 "name LIKE '%s' AND list_id != 0",
03c05291 4605 1,
29028043 4606 "name",
263a36d4 4607 NULL,
03c05291 4608 },
5eaef520 4609
03c05291 4610 {
44da57b2 4611 /* Q_ALIS - ADD_LIST, v2 */ /* uses prefetch_value() for list_id */
03c05291 4612 "add_list",
4613 "alis",
c44ddfa7 4614 2,
03c05291 4615 APPEND,
4616 "l",
5eaef520 4617 LIST_TABLE,
4618 "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)",
44da57b2 4619 alis2_fields,
03c05291 4620 10,
4621 0,
4622 0,
29028043 4623 NULL,
44da57b2 4624 &alis2_validate,
4625 },
4626
4627 {
4628 /* Q_ALIS - ADD_LIST, v3 */ /* uses prefetch_value() for list_id */
4629 "add_list",
4630 "alis",
4631 3,
4632 APPEND,
4633 "l",
4634 LIST_TABLE,
4635 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, description, list_id) VALUES ('%s', %s, %s, %s, %s, %s, %s, %s, '%s', %d, NVL('%s', CHR(0)), %s)",
59c3208b 4636 alis3_fields,
44da57b2 4637 11,
4638 0,
4639 0,
4640 NULL,
59c3208b 4641 &alis3_validate,
4642 },
4643
4644 {
4645 /* Q_ALIS - ADD_LIST, v4 */ /* uses prefetch_value() for list_id */
4646 "add_list",
4647 "alis",
4648 4,
4649 APPEND,
4650 "l",
4651 LIST_TABLE,
4652 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, nfsgroup, acl_type, acl_id, memacl_type, memacl_id, description, list_id) VALUES ('%s', %s, %s, %s, %s, %s, %s, %s, '%s', %d, '%s', %d, NVL('%s', CHR(0)), %s)",
4653 alis_fields,
4654 13,
4655 0,
4656 0,
4657 NULL,
03c05291 4658 &alis_validate,
4659 },
4660
4661 {
44da57b2 4662 /* Q_ULIS - UPDATE_LIST, v2 */
03c05291 4663 "update_list",
4664 "ulis",
c44ddfa7 4665 2,
03c05291 4666 UPDATE,
4667 "l",
4668 LIST_TABLE,
5eaef520 4669 "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))",
44da57b2 4670 ulis2_fields,
03c05291 4671 10,
4672 "list_id = %d",
4673 1,
29028043 4674 NULL,
44da57b2 4675 &ulis2_validate,
4676 },
4677
4678 {
4679 /* Q_ULIS - UPDATE_LIST, v3 */
4680 "update_list",
4681 "ulis",
4682 3,
4683 UPDATE,
4684 "l",
4685 LIST_TABLE,
4686 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, nfsgroup = %s, acl_type = '%s', acl_id = %d, description = NVL('%s', CHR(0))",
59c3208b 4687 ulis3_fields,
44da57b2 4688 11,
4689 "list_id = %d",
4690 1,
4691 NULL,
59c3208b 4692 &ulis3_validate,
4693 },
4694
4695 {
4696 /* Q_ULIS, UPDATE_LIST, v4 */
4697 "update_list",
4698 "ulis",
4699 4,
4700 UPDATE,
4701 "l",
4702 LIST_TABLE,
4703 "list SET name = '%s', active = %s, publicflg = %s, hidden = %s, maillist = %s, grouplist = %s, gid = %s, nfsgroup = %s, acl_type = '%s', acl_id = %d, memacl_type = '%s', memacl_id = %d, description = NVL('%s', CHR(0))",
4704 ulis_fields,
4705 13,
4706 "list_id = %d",
4707 1,
4708 NULL,
03c05291 4709 &ulis_validate,
4710 },
4711
4712 {
4713 /* Q_DLIS - DELETE_LIST */
4714 "delete_list",
4715 "dlis",
c44ddfa7 4716 2,
03c05291 4717 DELETE,
4718 "l",
4719 LIST_TABLE,
7ac48069 4720 NULL,
03c05291 4721 dlis_fields,
4722 0,
4723 "list_id = %d",
4724 1,
29028043 4725 NULL,
03c05291 4726 &dlis_validate,
4727 },
4728
4729 {
4730 /* Q_AMTL - ADD_MEMBER_TO_LIST */
4731 "add_member_to_list",
4732 "amtl",
c44ddfa7 4733 2,
03c05291 4734 APPEND,
4735 0,
4736 IMEMBERS_TABLE,
4737 0,
4738 amtl_fields,
4739 3,
7ac48069 4740 NULL,
03c05291 4741 0,
29028043 4742 NULL,
03c05291 4743 &amtl_validate,
4744 },
4745
46b6f1f6 4746 {
4747 /* Q_ATML - ADD_TAGGED_MEMBER_TO_LIST */
4748 "add_tagged_member_to_list",
4749 "atml",
c44ddfa7 4750 2,
46b6f1f6 4751 APPEND,
4752 0,
4753 IMEMBERS_TABLE,
4754 0,
4755 atml_fields,
4756 4,
4757 NULL,
4758 0,
4759 NULL,
4760 &atml_validate,
4761 },
4762
4763 {
4764 /* Q_TMOL - TAG_MEMBER_OF_LIST */
4765 "tag_member_of_list",
4766 "tmol",
c44ddfa7 4767 2,
46b6f1f6 4768 UPDATE,
20541c25 4769 0,
46b6f1f6 4770 IMEMBERS_TABLE,
20541c25 4771 0,
46b6f1f6 4772 atml_fields,
4773 1,
20541c25 4774 0,
46b6f1f6 4775 3,
4776 NULL,
4777 &tmol_validate,
4778 },
4779
03c05291 4780 {
4781 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
4782 "delete_member_from_list",
4783 "dmfl",
c44ddfa7 4784 2,
03c05291 4785 DELETE,
4786 0,
4787 IMEMBERS_TABLE,
7ac48069 4788 NULL,
03c05291 4789 amtl_fields,
4790 0,
4791 0,
4792 3,
29028043 4793 NULL,
03c05291 4794 &dmfl_validate,
4795 },
4796
4797 {
4798 /* Q_GAUS - GET_ACE_USE */
4799 "get_ace_use",
4800 "gaus",
c44ddfa7 4801 2,
03c05291 4802 RETRIEVE,
4803 0,
4804 0,
4805 0,
4806 gaus_fields,
4807 2,
4808 0,
4809 2,
29028043 4810 NULL,
03c05291 4811 &gaus_validate,
4812 },
4813
d3051625 4814 {
4815 /* Q_GHBO - GET_HOST_BY_OWNER */
4816 "get_host_by_owner",
4817 "ghbo",
4818 2,
4819 RETRIEVE,
4820 0,
4821 0,
4822 0,
4823 ghbo_fields,
4824 1,
4825 0,
4826 2,
4827 NULL,
4828 &ghbo_validate,
4829 },
4830
03c05291 4831 {
4832 /* Q_QGLI - QUALIFIED_GET_LISTS */
4833 "qualified_get_lists",
4834 "qgli",
c44ddfa7 4835 2,
03c05291 4836 RETRIEVE,
4837 0,
4838 LIST_TABLE,
4839 0,
4840 qgli_fields,
4841 1,
4842 0,
4843 5,
29028043 4844 NULL,
03c05291 4845 &qgli_validate,
4846 },
4847
4848 {
4849 /* Q_GMOL - GET_MEMBERS_OF_LIST */
4850 "get_members_of_list",
4851 "gmol",
c44ddfa7 4852 2,
03c05291 4853 RETRIEVE,
7ac48069 4854 NULL,
03c05291 4855 IMEMBERS_TABLE,
7ac48069 4856 NULL,
03c05291 4857 gmol_fields,
4858 2,
7ac48069 4859 NULL,
03c05291 4860 1,
29028043 4861 NULL,
03c05291 4862 &gmol_validate,
4863 },
4864
4865 {
4866 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
4867 "get_end_members_of_list",
4868 "geml",
c44ddfa7 4869 2,
03c05291 4870 RETRIEVE,
7ac48069 4871 NULL,
03c05291 4872 IMEMBERS_TABLE,
7ac48069 4873 NULL,
03c05291 4874 gmol_fields,
fd8d2149 4875 2,
7ac48069 4876 NULL,
03c05291 4877 1,
29028043 4878 NULL,
46b6f1f6 4879 &gmol_validate,
4880 },
4881
4882 {
4883 /* Q_GTML - GET_TAGGED_MEMBERS_OF_LIST */
4884 "get_tagged_members_of_list",
4885 "gtml",
c44ddfa7 4886 2,
46b6f1f6 4887 RETRIEVE,
4888 NULL,
4889 IMEMBERS_TABLE,
4890 NULL,
4891 gtml_fields,
4892 3,
4893 NULL,
4894 1,
4895 NULL,
4896 &gmol_validate,
03c05291 4897 },
5eaef520 4898
03c05291 4899 {
4900 /* Q_GLOM - GET_LISTS_OF_MEMBER */
4901 "get_lists_of_member",
4902 "glom",
c44ddfa7 4903 2,
03c05291 4904 RETRIEVE,
4905 0,
4906 IMEMBERS_TABLE,
4907 0,
4908 glom_fields,
4909 6,
4910 0,
4911 2,
29028043 4912 NULL,
03c05291 4913 &glom_validate,
4914 },
4915
4916 {
4917 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
4918 "count_members_of_list",
4919 "cmol",
c44ddfa7 4920 2,
03c05291 4921 RETRIEVE,
4922 0,
4923 IMEMBERS_TABLE,
4924 0,
4925 cmol_fields,
4926 1,
4927 0,
4928 1,
29028043 4929 NULL,
03c05291 4930 &cmol_validate,
4931 },
4932
d33e787c 4933 {
4934 /* Q_GSIN - GET_SERVER_INFO */
4935 "get_server_info",
4936 "gsin",
c44ddfa7 4937 2,
d33e787c 4938 RETRIEVE,
4939 "s",
03c05291 4940 SERVERS_TABLE,
4941 "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 4942 gsin_fields,
7ac4c1b1 4943 16,
263a36d4 4944 "name LIKE UPPER('%s')",
d33e787c 4945 1,
29028043 4946 "name",
d33e787c 4947 &gsin_validate,
4948 },
4949
4950 {
4951 /* Q_QGSV - QUALIFIED_GET_SERVER */
4952 "qualified_get_server",
4953 "qgsv",
c44ddfa7 4954 2,
d33e787c 4955 RETRIEVE,
4956 0,
03c05291 4957 SERVERS_TABLE,
d33e787c 4958 0,
4959 qgsv_fields,
4960 1,
4961 0,
4962 3,
29028043 4963 NULL,
d33e787c 4964 &qgsv_validate,
4965 },
4966
4967 {
4968 /* Q_ASIN - ADD_SERVER_INFO */
4969 "add_server_info",
4970 "asin",
c44ddfa7 4971 2,
d33e787c 4972 APPEND,
4973 "s",
03c05291 4974 SERVERS_TABLE,
5eaef520 4975 "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 4976 asin_fields,
4977 8,
7ac48069 4978 NULL,
d33e787c 4979 0,
29028043 4980 NULL,
d33e787c 4981 &asin_validate,
4982 },
4983
4984 {
4985 /* Q_USIN - UPDATE_SERVER_INFO */
4986 "update_server_info",
4987 "usin",
c44ddfa7 4988 2,
d33e787c 4989 UPDATE,
4990 "s",
03c05291 4991 SERVERS_TABLE,
4e5ec77f 4992 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
d33e787c 4993 asin_fields,
4994 7,
03c05291 4995 "name = UPPER('%s')",
d33e787c 4996 1,
29028043 4997 NULL,
d33e787c 4998 &asin_validate,
4999 },
5000
5001 {
5002 /* Q_RSVE - RESET_SERVER_ERROR */
5003 "reset_server_error",
5004 "rsve",
c44ddfa7 5005 2,
d33e787c 5006 UPDATE,
5007 "s",
03c05291 5008 SERVERS_TABLE,
4e5ec77f 5009 "servers SET harderror = 0, dfcheck = dfgen",
d33e787c 5010 dsin_fields,
5011 0,
03c05291 5012 "name = UPPER('%s')",
d33e787c 5013 1,
29028043 5014 NULL,
d33e787c 5015 &rsve_validate,
5016 },
5017
5018 {
5019 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
5020 "set_server_internal_flags",
5021 "ssif",
c44ddfa7 5022 2,
d33e787c 5023 UPDATE,
5024 "s",
03c05291 5025 SERVERS_TABLE,
5eaef520 5026 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s', CHR(0))",
d33e787c 5027 ssif_fields,
7ac4c1b1 5028 5,
03c05291 5029 "name = UPPER('%s')",
d33e787c 5030 1,
29028043 5031 NULL,
d33e787c 5032 &ssif_validate,
5033 },
5034
5035 {
5036 /* Q_DSIN - DELETE_SERVER_INFO */
5037 "delete_server_info",
5038 "dsin",
c44ddfa7 5039 2,
d33e787c 5040 DELETE,
5041 "s",
03c05291 5042 SERVERS_TABLE,
7ac48069 5043 NULL,
d33e787c 5044 dsin_fields,
5045 0,
03c05291 5046 "name = UPPER('%s')",
d33e787c 5047 1,
29028043 5048 NULL,
d33e787c 5049 &dsin_validate,
5050 },
5051
5052 {
5eaef520 5053 /* Q_GSHI - GET_SERVER_HOST_INFO */
d33e787c 5054 "get_server_host_info",
5055 "gshi",
c44ddfa7 5056 2,
d33e787c 5057 RETRIEVE,
5058 "sh",
03c05291 5059 SERVERHOSTS_TABLE,
5060 "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 5061 gshi_fields,
5062 16,
263a36d4 5063 "sh.service LIKE UPPER('%s') AND m.name LIKE UPPER('%s') AND m.mach_id = sh.mach_id",
d33e787c 5064 2,
29028043 5065 "sh.service, m.name",
d33e787c 5066 &gshi_validate,
5067 },
5068
5069 {
135dcb80 5070 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
d33e787c 5071 "qualified_get_server_host",
5072 "qgsh",
c44ddfa7 5073 2,
d33e787c 5074 RETRIEVE,
135dcb80 5075 0,
03c05291 5076 SERVERHOSTS_TABLE,
d33e787c 5077 0,
5078 qgsh_fields,
5079 2,
5080 0,
5081 6,
29028043 5082 NULL,
d33e787c 5083 &qgsh_validate,
5084 },
5085
5086 {
5087 /* Q_ASHI - ADD_SERVER_HOST_INFO */
5088 "add_server_host_info",
5089 "ashi",
c44ddfa7 5090 2,
d33e787c 5091 APPEND,
5092 "sh",
03c05291 5093 SERVERHOSTS_TABLE,
5eaef520 5094 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s', CHR(0)))",
d33e787c 5095 ashi_fields,
5096 6,
7ac48069 5097 NULL,
d33e787c 5098 0,
29028043 5099 NULL,
d33e787c 5100 &ashi_validate,
5101 },
5102
5103 {
5104 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
5105 "update_server_host_info",
5106 "ushi",
c44ddfa7 5107 2,
d33e787c 5108 UPDATE,
5109 "sh",
03c05291 5110 SERVERHOSTS_TABLE,
5eaef520 5111 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s', CHR(0))",
d33e787c 5112 ashi_fields,
5113 4,
03c05291 5114 "service = UPPER('%s') AND mach_id = %d",
d33e787c 5115 2,
29028043 5116 NULL,
d33e787c 5117 &ashi_validate,
5118 },
5119
5120 {
5121 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
5122 "reset_server_host_error",
5123 "rshe",
c44ddfa7 5124 2,
d33e787c 5125 UPDATE,
5126 "sh",
03c05291 5127 SERVERHOSTS_TABLE,
4e5ec77f 5128 "serverhosts SET hosterror = 0",
d33e787c 5129 dshi_fields,
5130 0,
03c05291 5131 "service = UPPER('%s') AND mach_id = %d",
d33e787c 5132 2,
29028043 5133 NULL,
d33e787c 5134 &rshe_validate,
5135 },
5136
5137 {
5138 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
5139 "set_server_host_override",
5140 "ssho",
c44ddfa7 5141 2,
d33e787c 5142 UPDATE,
5143 "sh",
03c05291 5144 SERVERHOSTS_TABLE,
4e5ec77f 5145 "serverhosts SET override = 1",
d33e787c 5146 dshi_fields,
5147 0,
03c05291 5148 "service = UPPER('%s') AND mach_id = %d",
d33e787c 5149 2,
29028043 5150 NULL,
d33e787c 5151 &ssho_validate,
5152 },
5153
5154 {
e41960ac 5155 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
d33e787c 5156 "set_server_host_internal",
5157 "sshi",
c44ddfa7 5158 2,
d33e787c 5159 UPDATE,
7ac4c1b1 5160 "s",
03c05291 5161 SERVERHOSTS_TABLE,
5eaef520 5162 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s', CHR(0)), ltt = %s, lts = %s",
d33e787c 5163 sshi_fields,
5164 7,
5eaef520 5165 "service = UPPER('%s') AND mach_id = %d",
d33e787c 5166 2,
29028043 5167 NULL,
d33e787c 5168 &sshi_validate,
5169 },
5170
5171 {
03c05291 5172 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
5173 "delete_server_host_info",
5174 "dshi",
c44ddfa7 5175 2,
d33e787c 5176 DELETE,
03c05291 5177 "sh",
5178 SERVERHOSTS_TABLE,
7ac48069 5179 NULL,
03c05291 5180 dshi_fields,
d33e787c 5181 0,
03c05291 5182 "service = UPPER('%s') AND mach_id = %d",
5183 2,
29028043 5184 NULL,
03c05291 5185 &dshi_validate,
d33e787c 5186 },
5187
5188 {
5eaef520 5189 /* Q_GSLO - GET_SERVER_LOCATIONS */
d33e787c 5190 "get_server_locations",
5191 "gslo",
c44ddfa7 5192 2,
d33e787c 5193 RETRIEVE,
5194 "sh",
03c05291 5195 SERVERHOSTS_TABLE,
5196 "sh.service, m.name FROM serverhosts sh, machine m",
d33e787c 5197 gslo_fields,
5198 2,
263a36d4 5199 "sh.service LIKE UPPER('%s') AND sh.mach_id = m.mach_id",
d33e787c 5200 1,
29028043 5201 "sh.service, m.name",
263a36d4 5202 NULL,
d33e787c 5203 },
5204
5205 {
5eaef520 5206 /* Q_GFSL - GET_FILESYS_BY_LABEL */
d33e787c 5207 "get_filesys_by_label",
5208 "gfsl",
c44ddfa7 5209 2,
d33e787c 5210 RETRIEVE,
5211 "fs",
03c05291 5212 FILESYS_TABLE,
5213 "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 5214 gfsl_fields,
5215 14,
263a36d4 5216 "fs.label LIKE '%s' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 5217 1,
29028043 5218 "fs.label",
5a8887d8 5219 &gfsl_validate,
d33e787c 5220 },
5221
5222 {
5eaef520 5223 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
d33e787c 5224 "get_filesys_by_machine",
5225 "gfsm",
c44ddfa7 5226 2,
d33e787c 5227 RETRIEVE,
5228 "fs",
03c05291 5229 FILESYS_TABLE,
5230 "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 5231 gfsm_fields,
5232 14,
4e5ec77f 5233 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 5234 1,
29028043 5235 "fs.label",
d33e787c 5236 &gfsm_validate,
5237 },
5238
88343c5e 5239 {
5eaef520 5240 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
88343c5e 5241 "get_filesys_by_nfsphys",
5242 "gfsn",
c44ddfa7 5243 2,
88343c5e 5244 RETRIEVE,
5245 "fs",
03c05291 5246 FILESYS_TABLE,
5247 "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 5248 gfsn_fields,
5249 14,
cc1bca5c 5250 "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'",
88343c5e 5251 2,
29028043 5252 "fs.label",
99e09b48 5253 &gfsn_validate,
88343c5e 5254 },
5255
d33e787c 5256 {
5eaef520 5257 /* Q_GFSG - GET_FILESYS_BY_GROUP */
d33e787c 5258 "get_filesys_by_group",
5259 "gfsg",
c44ddfa7 5260 2,
d33e787c 5261 RETRIEVE,
5262 "fs",
03c05291 5263 FILESYS_TABLE,
5264 "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 5265 gfsg_fields,
5266 14,
4e5ec77f 5267 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
d33e787c 5268 1,
29028043 5269 "fs.label",
d33e787c 5270 &gfsg_validate,
5271 },
5272
4ffa124a 5273 {
76f86976 5274 /* Q_GFSP - GET_FILESYS_BY_PATH */
4ffa124a 5275 "get_filesys_by_path",
5276 "gfsp",
c44ddfa7 5277 2,
4ffa124a 5278 RETRIEVE,
5279 "fs",
03c05291 5280 FILESYS_TABLE,
5281 "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 5282 gfsp_fields,
5283 14,
263a36d4 5284 "fs.name LIKE '%s' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4ffa124a 5285 1,
29028043 5286 "fs.label",
263a36d4 5287 &VDfix_modby,
4ffa124a 5288 },
5eaef520 5289
d33e787c 5290 {
45bf7573 5291 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
d33e787c 5292 "add_filesys",
5293 "afil",
c44ddfa7 5294 2,
d33e787c 5295 APPEND,
5296 "fs",
03c05291 5297 FILESYS_TABLE,
d4296047 5298 "INTO filesys (label, type, mach_id, name, mount, rwaccess, comments, owner, owners, createflg, lockertype, filsys_id) VALUES ('%s', '%s', %d, NVL('%s', CHR(0)), NVL('%s', CHR(0)), '%s', NVL('%s', CHR(0)), %d, %d, %s, '%s', %s)",
d33e787c 5299 afil_fields,
5300 11,
45bf7573 5301 0,
d33e787c 5302 0,
29028043 5303 NULL,
d33e787c 5304 &afil_validate,
5305 },
5306
5307 {
5308 /* Q_UFIL - UPDATE_FILESYS */
5309 "update_filesys",
5310 "ufil",
c44ddfa7 5311 2,
d33e787c 5312 UPDATE,
5313 "fs",
03c05291 5314 FILESYS_TABLE,
d4296047 5315 "filesys SET label = '%s', type = '%s', mach_id = %d, name = NVL('%s', CHR(0)), mount = NVL('%s', CHR(0)), rwaccess = '%s', comments = NVL('%s', CHR(0)), owner = %d, owners = %d, createflg = %s, lockertype = '%s'",
d33e787c 5316 ufil_fields,
5317 11,
4e5ec77f 5318 "filsys_id = %d",
d33e787c 5319 1,
29028043 5320 NULL,
5eaef520 5321 &ufil_validate,
d33e787c 5322 },
5323
5324 {
5325 /* Q_DFIL - DELETE_FILESYS */
5326 "delete_filesys",
5327 "dfil",
c44ddfa7 5328 2,
d33e787c 5329 DELETE,
5330 "fs",
03c05291 5331 FILESYS_TABLE,
7ac48069 5332 NULL,
d33e787c 5333 dfil_fields,
5334 0,
4e5ec77f 5335 "filsys_id = %d",
d33e787c 5336 1,
29028043 5337 NULL,
d33e787c 5338 &dfil_validate,
5339 },
5340
95127ba8 5341 {
5eaef520 5342 /* Q_GFGM - GET_FSGROUP_MEMBERS */
95127ba8 5343 "get_fsgroup_members",
5344 "gfgm",
c44ddfa7 5345 2,
95127ba8 5346 RETRIEVE,
5347 "fg",
03c05291 5348 FSGROUP_TABLE,
5349 "fs.label, fg.key FROM fsgroup fg, filesys fs",
95127ba8 5350 gfgm_fields,
5351 2,
4e5ec77f 5352 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
95127ba8 5353 1,
29028043 5354 "fs.label, fg.key",
95127ba8 5355 &gfgm_validate,
5356 },
5357
5358 {
76f86976 5359 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
95127ba8 5360 "add_filesys_to_fsgroup",
5361 "aftg",
c44ddfa7 5362 2,
95127ba8 5363 APPEND,
5364 "fg",
03c05291 5365 FSGROUP_TABLE,
5eaef520 5366 "INTO fsgroup (group_id, filsys_id, key) VALUES (%d, %d, '%s')",
95127ba8 5367 gfgm_fields,
76f86976 5368 3,
7ac48069 5369 NULL,
76f86976 5370 0,
29028043 5371 NULL,
95127ba8 5372 &aftg_validate,
5373 },
5374
5375 {
5376 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
5377 "remove_filesys_from_fsgroup",
5378 "rffg",
c44ddfa7 5379 2,
95127ba8 5380 DELETE,
5381 "fg",
03c05291 5382 FSGROUP_TABLE,
7ac48069 5383 NULL,
95127ba8 5384 gfgm_fields,
5385 0,
4e5ec77f 5386 "group_id = %d AND filsys_id = %d",
95127ba8 5387 2,
29028043 5388 NULL,
95127ba8 5389 &aftg_validate,
5390 },
5391
d33e787c 5392 {
5eaef520 5393 /* Q_GANF - GET_ALL_NFSPHYS */
d33e787c 5394 "get_all_nfsphys",
5395 "ganf",
c44ddfa7 5396 2,
d33e787c 5397 RETRIEVE,
5398 "np",
03c05291 5399 NFSPHYS_TABLE,
5400 "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 5401 ganf_fields,
5402 9,
4e5ec77f 5403 "m.mach_id = np.mach_id",
d33e787c 5404 0,
29028043 5405 "m.name, np.dir",
5406 &VDfix_modby,
d33e787c 5407 },
5408
5409 {
5eaef520 5410 /* Q_GNFP - GET_NFSPHYS */
d33e787c 5411 "get_nfsphys",
5412 "gnfp",
c44ddfa7 5413 2,
d33e787c 5414 RETRIEVE,
5415 "np",
03c05291 5416 NFSPHYS_TABLE,
5417 "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 5418 gnfp_fields,
5419 9,
263a36d4 5420 "np.mach_id = %d AND np.dir LIKE '%s' AND m.mach_id = np.mach_id",
d33e787c 5421 2,
29028043 5422 "m.name, np.dir",
d33e787c 5423 &gnfp_validate,
5424 },
5425
5426 {
45bf7573 5427 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
d33e787c 5428 "add_nfsphys",
5429 "anfp",
c44ddfa7 5430 2,
d33e787c 5431 APPEND,
5432 "np",
03c05291 5433 NFSPHYS_TABLE,
5eaef520 5434 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s', CHR(0)), %s, %s, %s, %s)",
d33e787c 5435 ganf_fields,
5436 6,
45bf7573 5437 0,
d33e787c 5438 0,
29028043 5439 NULL,
d33e787c 5440 &anfp_validate,
5441 },
5442
5443 {
5444 /* Q_UNFP - UPDATE_NFSPHYS */
5445 "update_nfsphys",
5446 "unfp",
c44ddfa7 5447 2,
d33e787c 5448 UPDATE,
5449 "np",
03c05291 5450 NFSPHYS_TABLE,
5eaef520 5451 "nfsphys SET device = NVL('%s', CHR(0)), status = %s, allocated = %s, partsize = %s",
135dcb80 5452 ganf_fields,
d33e787c 5453 4,
5eaef520 5454 "mach_id = %d AND dir = '%s'",
d33e787c 5455 2,
29028043 5456 NULL,
45bf7573 5457 &unfp_validate,
d33e787c 5458 },
5459
5460 {
5461 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
5462 "adjust_nfsphys_allocation",
5463 "ajnf",
c44ddfa7 5464 2,
d33e787c 5465 UPDATE,
5466 "np",
03c05291 5467 NFSPHYS_TABLE,
4e5ec77f 5468 "nfsphys SET allocated = allocated + %s",
99e09b48 5469 ajnf_fields,
d33e787c 5470 1,
4e5ec77f 5471 "mach_id = %d AND dir = '%s'",
d33e787c 5472 2,
29028043 5473 NULL,
f802fd0d 5474 &ajnf_validate,
d33e787c 5475 },
5476
5477 {
5478 /* Q_DNFP - DELETE_NFSPHYS */
5479 "delete_nfsphys",
5480 "dnfp",
c44ddfa7 5481 2,
d33e787c 5482 DELETE,
5483 "np",
03c05291 5484 NFSPHYS_TABLE,
7ac48069 5485 NULL,
d33e787c 5486 dnfp_fields,
5487 0,
4e5ec77f 5488 "mach_id = %d AND dir = '%s'",
d33e787c 5489 2,
29028043 5490 NULL,
d33e787c 5491 &dnfp_validate,
5492 },
5493
368be132 5494 {
5eaef520 5495 /* Q_GQOT - GET_QUOTA */
368be132 5496 "get_quota",
5497 "gqot",
c44ddfa7 5498 2,
368be132 5499 RETRIEVE,
5500 "q",
03c05291 5501 QUOTA_TABLE,
5502 "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 5503 gqot_fields,
5504 9,
263a36d4 5505 "fs.label LIKE '%s' AND q.type = '%s' AND q.entity_id = %d AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
368be132 5506 3,
29028043 5507 NULL,
368be132 5508 &gqot_validate,
5509 },
5510
5511 {
5eaef520 5512 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
368be132 5513 "get_quota_by_filesys",
5514 "gqbf",
c44ddfa7 5515 2,
368be132 5516 RETRIEVE,
5517 "q",
03c05291 5518 QUOTA_TABLE,
5519 "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 5520 gqbf_fields,
5521 9,
263a36d4 5522 "fs.label LIKE '%s' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
368be132 5523 1,
29028043 5524 "fs.label, q.type",
368be132 5525 &gqbf_validate,
5526 },
5527
5528 {
135dcb80 5529 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
368be132 5530 "add_quota",
5531 "aqot",
c44ddfa7 5532 2,
368be132 5533 APPEND,
135dcb80 5534 0,
03c05291 5535 QUOTA_TABLE,
135dcb80 5536 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
368be132 5537 aqot_fields,
135dcb80 5538 4,
7ac48069 5539 NULL,
76f86976 5540 0,
29028043 5541 NULL,
368be132 5542 &aqot_validate,
5543 },
5544
5545 {
5546 /* Q_UQOT - UPDATE_QUOTA */
5547 "update_quota",
5548 "uqot",
c44ddfa7 5549 2,
368be132 5550 UPDATE,
135dcb80 5551 0,
03c05291 5552 QUOTA_TABLE,
4e5ec77f 5553 "quota SET quota = %s",
368be132 5554 aqot_fields,
5555 1,
135dcb80 5556 0,
368be132 5557 3,
29028043 5558 NULL,
368be132 5559 &uqot_validate,
5560 },
5561
5562 {
5563 /* Q_DQOT - DELETE_QUOTA */
5564 "delete_quota",
5565 "dqot",
c44ddfa7 5566 2,
368be132 5567 DELETE,
135dcb80 5568 0,
03c05291 5569 QUOTA_TABLE,
7ac48069 5570 NULL,
368be132 5571 aqot_fields,
5572 0,
135dcb80 5573 0,
368be132 5574 3,
29028043 5575 NULL,
368be132 5576 &dqot_validate,
5577 },
5578
d33e787c 5579 {
5eaef520 5580 /* Q_GNFQ - GET_NFS_QUOTAS */
88343c5e 5581 "get_nfs_quota",
d33e787c 5582 "gnfq",
c44ddfa7 5583 2,
d33e787c 5584 RETRIEVE,
368be132 5585 "q",
03c05291 5586 QUOTA_TABLE,
5587 "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 5588 gnfq_fields,
5589 8,
263a36d4 5590 "fs.label LIKE '%s' 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 5591 2,
29028043 5592 "fs.label, u.login",
d33e787c 5593 &gnfq_validate,
5594 },
5595
5596 {
5eaef520 5597 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
d33e787c 5598 "get_nfs_quotas_by_partition",
5599 "gnqp",
c44ddfa7 5600 2,
d33e787c 5601 RETRIEVE,
368be132 5602 "q",
03c05291 5603 QUOTA_TABLE,
5604 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
d33e787c 5605 gnqp_fields,
5606 5,
263a36d4 5607 "np.mach_id = %d AND np.dir LIKE '%s' 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 5608 2,
29028043 5609 "fs.label",
263a36d4 5610 NULL,
d33e787c 5611 },
5612
d33e787c 5613 {
135dcb80 5614 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
d33e787c 5615 "add_nfs_quota",
5616 "anfq",
c44ddfa7 5617 2,
d33e787c 5618 APPEND,
135dcb80 5619 0,
03c05291 5620 QUOTA_TABLE,
135dcb80 5621 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
d33e787c 5622 anfq_fields,
135dcb80 5623 3,
7ac48069 5624 NULL,
76f86976 5625 0,
29028043 5626 NULL,
d33e787c 5627 &anfq_validate,
5628 },
5629
5630 {
5eaef520 5631 /* Q_UNFQ - UPDATE_NFS_QUOTA */
d33e787c 5632 "update_nfs_quota",
5633 "unfq",
c44ddfa7 5634 2,
d33e787c 5635 UPDATE,
135dcb80 5636 0,
03c05291 5637 QUOTA_TABLE,
4e5ec77f 5638 "quota SET quota = %s",
d33e787c 5639 anfq_fields,
5640 1,
135dcb80 5641 0,
d33e787c 5642 2,
29028043 5643 NULL,
d33e787c 5644 &unfq_validate,
5645 },
5646
5647 {
5648 /* Q_DNFQ - DELETE_NFS_QUOTA */
5649 "delete_nfs_quota",
5650 "dnfq",
c44ddfa7 5651 2,
d33e787c 5652 DELETE,
135dcb80 5653 0,
03c05291 5654 QUOTA_TABLE,
7ac48069 5655 NULL,
d33e787c 5656 anfq_fields,
5657 0,
135dcb80 5658 0,
d33e787c 5659 2,
29028043 5660 NULL,
d33e787c 5661 &dnfq_validate,
5662 },
5663
d33e787c 5664 {
d7ddc011 5665 /* Q_GZCL - GET_ZEPHYR_CLASS, v2 */
d33e787c 5666 "get_zephyr_class",
5667 "gzcl",
c44ddfa7 5668 2,
d33e787c 5669 RETRIEVE,
5670 "z",
03c05291 5671 ZEPHYR_TABLE,
5672 "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",
d7ddc011 5673 gzcl2_fields,
d33e787c 5674 12,
263a36d4 5675 "class LIKE '%s'",
d33e787c 5676 1,
29028043 5677 "class",
d33e787c 5678 &gzcl_validate,
03c05291 5679 },
d33e787c 5680
5681 {
d7ddc011 5682 /* Q_GZCL - GET_ZEPHYR_CLASS, v5 */
5683 "get_zephyr_class",
5684 "gzcl",
5685 5,
5686 RETRIEVE,
5687 "z",
5688 ZEPHYR_TABLE,
5689 "class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM zephyr",
5690 gzcl_fields,
5691 14,
5692 "class LIKE '%s'",
5693 1,
5694 "class",
5695 &gzcl_validate,
5696 },
5697
5698 {
5699 /* Q_AZCL - ADD_ZEPHYR_CLASS, v2 */
d33e787c 5700 "add_zephyr_class",
5701 "azcl",
c44ddfa7 5702 2,
d33e787c 5703 APPEND,
5704 "z",
03c05291 5705 ZEPHYR_TABLE,
5eaef520 5706 "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)",
d7ddc011 5707 azcl2_fields,
d33e787c 5708 9,
5709 0,
5710 0,
29028043 5711 NULL,
d7ddc011 5712 &azcl2_validate,
5713 },
5714
5715 {
5716 /* Q_AZCL - ADD_ZEPHYR_CLASS, v5 */
5717 "add_zephyr_class",
5718 "azcl",
5719 5,
5720 APPEND,
5721 "z",
5722 ZEPHYR_TABLE,
5723 "INTO zephyr (class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, owner_type, owner_id) VALUES ('%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d, '%s', %d)",
5724 azcl_fields,
5725 11,
5726 0,
5727 0,
5728 NULL,
d33e787c 5729 &azcl_validate,
5eaef520 5730 },
d33e787c 5731
5732 {
d7ddc011 5733 /* Q_UZCL - UPDATE_ZEPHYR_CLASS, v2 */
d33e787c 5734 "update_zephyr_class",
5735 "uzcl",
c44ddfa7 5736 2,
d33e787c 5737 UPDATE,
5738 "z",
03c05291 5739 ZEPHYR_TABLE,
135dcb80 5740 "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",
d7ddc011 5741 uzcl2_fields,
d33e787c 5742 9,
99e09b48 5743 "class = '%s'",
d33e787c 5744 1,
29028043 5745 NULL,
d7ddc011 5746 &uzcl2_validate,
5747 },
5748
5749 {
5750 /* Q_UZCL - UPDATE_ZEPHYR_CLASS, v5 */
5751 "update_zephyr_class",
5752 "uzcl",
5753 5,
5754 UPDATE,
5755 "z",
5756 ZEPHYR_TABLE,
5757 "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, owner_type = '%s', owner_id = %d",
5758 uzcl_fields,
5759 11,
5760 "class = '%s'",
5761 1,
5762 NULL,
d33e787c 5763 &uzcl_validate,
5eaef520 5764 },
d33e787c 5765
5766 {
5767 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
5768 "delete_zephyr_class",
5769 "dzcl",
c44ddfa7 5770 2,
d33e787c 5771 DELETE,
5772 "z",
03c05291 5773 ZEPHYR_TABLE,
d33e787c 5774 0,
5775 uzcl_fields,
5776 0,
99e09b48 5777 "class = '%s'",
d33e787c 5778 1,
29028043 5779 NULL,
d33e787c 5780 &dzcl_validate,
5eaef520 5781 },
fd5b2340 5782
03c05291 5783 {
5eaef520 5784 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
03c05291 5785 "get_server_host_access",
5786 "gsha",
c44ddfa7 5787 2,
03c05291 5788 RETRIEVE,
5789 "ha",
5790 HOSTACCESS_TABLE,
5791 "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",
5792 gsha_fields,
5793 6,
263a36d4 5794 "m.name LIKE UPPER('%s') AND ha.mach_id = m.mach_id",
03c05291 5795 1,
29028043 5796 "m.name",
03c05291 5797 &gsha_validate,
5798 },
5799
5800 {
5801 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
5802 "add_server_host_access",
5803 "asha",
c44ddfa7 5804 2,
03c05291 5805 APPEND,
5806 "ha",
5807 HOSTACCESS_TABLE,
5eaef520 5808 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d, '%s', %d)",
03c05291 5809 asha_fields,
5810 3,
5811 0,
5812 0,
29028043 5813 NULL,
03c05291 5814 &asha_validate,
5815 },
5816
5817 {
5818 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
5819 "update_server_host_access",
5820 "usha",
c44ddfa7 5821 2,
03c05291 5822 UPDATE,
5823 "ha",
5824 HOSTACCESS_TABLE,
5825 "hostaccess SET acl_type = '%s', acl_id = %d",
5826 asha_fields,
5827 2,
5828 "mach_id = %d",
5829 1,
29028043 5830 NULL,
03c05291 5831 &asha_validate,
5832 },
5833
5834 {
5835 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
5836 "delete_server_host_access",
5837 "dsha",
c44ddfa7 5838 2,
03c05291 5839 DELETE,
5840 "ha",
5841 HOSTACCESS_TABLE,
5842 0,
5843 asha_fields,
5844 0,
5845 "mach_id = %d",
5846 1,
29028043 5847 NULL,
03c05291 5848 &VDmach,
5849 },
5850
46b6f1f6 5851 {
5852 /* Q_GACL - GET_ACL */
5853 "get_acl",
5854 "gacl",
c44ddfa7 5855 2,
46b6f1f6 5856 RETRIEVE,
5857 "ac",
5858 ACL_TABLE,
5859 "m.name, ac.target, ac.kind, l.name FROM acl ac, machine m, list l",
5860 gacl_fields,
5861 4,
5862 "m.mach_id = %d AND m.mach_id = ac.mach_id AND ac.target LIKE '%s' AND l.list_id = ac.list_id",
5863 2,
5864 "m.name, ac.target, ac.kind",
5865 &gacl_validate,
5866 },
5867
5868 {
5869 /* Q_AACL - ADD_ACL */
5870 "add_acl",
5871 "aacl",
c44ddfa7 5872 2,
46b6f1f6 5873 APPEND,
5874 "ac",
5875 ACL_TABLE,
5876 "INTO acl (mach_id, target, kind, list_id) VALUES (%d, '%s', '%s', %d)",
5877 aacl_fields,
5878 4,
5879 0,
5880 0,
5881 NULL,
5882 &aacl_validate,
5883 },
5884
5885 {
5886 /* Q_DACL - DELETE_ACL */
5887 "delete_acl",
5888 "dacl",
c44ddfa7 5889 2,
46b6f1f6 5890 DELETE,
5891 "ac",
5892 ACL_TABLE,
5893 0,
5894 dacl_fields,
5895 0,
5896 "mach_id = %d AND target = '%s'",
5897 2,
5898 NULL,
5899 &gacl_validate,
5900 },
5901
d33e787c 5902 {
5903 /* Q_GSVC - GET_SERVICE */
5904 "get_service",
5905 "gsvc",
c44ddfa7 5906 2,
d33e787c 5907 RETRIEVE,
0c345c78 5908 "ss",
03c05291 5909 SERVICES_TABLE,
5910 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
fd5b2340 5911 gsvc_fields,
d33e787c 5912 7,
69eb9470 5913 "name LIKE '%s' AND protocol LIKE '%s'",
5914 2,
29028043 5915 "name",
263a36d4 5916 &VDfix_modby,
d33e787c 5917 },
5918
5919 {
5920 /* Q_ASVC - ADD_SERVICE */
5921 "add_service",
5922 "asvc",
c44ddfa7 5923 2,
d33e787c 5924 APPEND,
0c345c78 5925 "ss",
03c05291 5926 SERVICES_TABLE,
5eaef520 5927 "INTO services (name, protocol, port, description) VALUES ('%s', '%s', %s, NVL('%s', CHR(0)))",
fd5b2340 5928 asvc_fields,
d33e787c 5929 4,
7ac48069 5930 NULL,
d33e787c 5931 0,
29028043 5932 NULL,
d33e787c 5933 &asvc_validate,
5934 },
5935
5936 {
5937 /* Q_DSVC - DELETE_SERVICE */
5938 "delete_service",
5939 "dsvc",
c44ddfa7 5940 2,
d33e787c 5941 DELETE,
0c345c78 5942 "ss",
03c05291 5943 SERVICES_TABLE,
d33e787c 5944 0,
69eb9470 5945 dsvc_fields,
d33e787c 5946 0,
69eb9470 5947 "name = '%s' AND protocol = '%s'",
5948 2,
29028043 5949 NULL,
69eb9470 5950 &dsvc_validate,
d33e787c 5951 },
fd5b2340 5952
d33e787c 5953 {
2884200f 5954 /* Q_GPRN - GET_PRINTER */
5955 "get_printer",
5956 "gprn",
c44ddfa7 5957 2,
d33e787c 5958 RETRIEVE,
2884200f 5959 "pr",
5960 PRINTERS_TABLE,
e5a63571 5961 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5962 gprn_fields,
e5a63571 5963 19,
2884200f 5964 "pr.name LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
d33e787c 5965 1,
2884200f 5966 "pr.name",
5967 &VDfix_modby,
d33e787c 5968 },
5969
5970 {
2884200f 5971 /* Q_GPBD - GET_PRINTER_BY_DUPLEXNAME */
5972 "get_printer_by_duplexname",
5973 "gpbd",
c44ddfa7 5974 2,
2884200f 5975 RETRIEVE,
5976 "pr",
5977 PRINTERS_TABLE,
e5a63571 5978 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5979 gpbd_fields,
e5a63571 5980 19,
2884200f 5981 "pr.duplexname LIKE '%s' AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
5982 1,
5983 "pr.name",
5984 &VDfix_modby,
fd5b2340 5985 },
5986
5987 {
2884200f 5988 /* Q_GPBE - GET_PRINTER_BY_ETHERNET */
5989 "get_printer_by_ethernet",
5990 "gpbe",
c44ddfa7 5991 2,
2884200f 5992 RETRIEVE,
5993 "pr",
5994 PRINTERS_TABLE,
e5a63571 5995 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 5996 gpbd_fields,
e5a63571 5997 19,
59841cdb 5998 "m1.hwaddr LIKE LOWER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
fd5b2340 5999 1,
2884200f 6000 "pr.name",
6001 &VDfix_modby,
fd5b2340 6002 },
6003
6004 {
2884200f 6005 /* Q_GPBH - GET_PRINTER_BY_HOSTNAME */
6006 "get_printer_by_hostname",
6007 "gpbh",
c44ddfa7 6008 2,
fd5b2340 6009 RETRIEVE,
2884200f 6010 "pr",
6011 PRINTERS_TABLE,
e5a63571 6012 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 6013 gpbh_fields,
e5a63571 6014 19,
2884200f 6015 "m1.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
fd5b2340 6016 1,
2884200f 6017 "pr.name",
263a36d4 6018 &VDfix_modby,
d33e787c 6019 },
6020
6021 {
2884200f 6022 /* Q_GPBR - GET_PRINTER_BY_RM */
6023 "get_printer_by_rm",
6024 "gpbr",
c44ddfa7 6025 2,
2884200f 6026 RETRIEVE,
6027 "pr",
6028 PRINTERS_TABLE,
e5a63571 6029 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 6030 gpbr_fields,
e5a63571 6031 19,
2884200f 6032 "m3.name LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
d33e787c 6033 1,
2884200f 6034 "pr.name",
6035 &VDfix_modby,
d33e787c 6036 },
6037
012fc215 6038 {
2884200f 6039 /* Q_GPBL - GET_PRINTER_BY_LOCATION */
6040 "get_printer_by_location",
6041 "gpbl",
c44ddfa7 6042 2,
012fc215 6043 RETRIEVE,
2884200f 6044 "pr",
6045 PRINTERS_TABLE,
e5a63571 6046 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 6047 gpbl_fields,
e5a63571 6048 19,
2884200f 6049 "UPPER(pr.location) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
6050 1,
6051 "pr.name",
6052 &VDfix_modby,
6053 },
6054
6055 {
6056 /* Q_GPBC - GET_PRINTER_BY_CONTACT */
6057 "get_printer_by_contact",
6058 "gpbc",
c44ddfa7 6059 2,
2884200f 6060 RETRIEVE,
6061 "pr",
6062 PRINTERS_TABLE,
e5a63571 6063 "pr.name, pr.type, pr.hwtype, pr.duplexname, m1.name, m2.name, m3.name, pr.rp, m4.name, pr.ka, pr.pc, l1.name, l2.name, pr.banner, pr.location, pr.contact, TO_CHAR(pr.modtime, 'DD-mon-YYYY HH24:MI:SS'), pr.modby, pr.modwith FROM printers pr, machine m1, machine m2, machine m3, machine m4, list l1, list l2",
2884200f 6064 gpbc_fields,
e5a63571 6065 19,
2884200f 6066 "UPPER(pr.contact) LIKE UPPER('%s') AND m1.mach_id = pr.mach_id AND m2.mach_id = pr.loghost AND m3.mach_id = pr.rm AND m4.mach_id = pr.rq AND l1.list_id = pr.ac AND l2.list_id = pr.lpc_acl",
012fc215 6067 1,
2884200f 6068 "pr.name",
263a36d4 6069 &VDfix_modby,
012fc215 6070 },
6071
6072 {
2884200f 6073 /* Q_APRN - ADD_PRINTER */
6074 "add_printer",
6075 "aprn",
c44ddfa7 6076 2,
012fc215 6077 APPEND,
2884200f 6078 "pr",
6079 PRINTERS_TABLE,
e5a63571 6080 "INTO printers (name, type, hwtype, duplexname, mach_id, loghost, rm, rp, rq, ka, pc, ac, lpc_acl, banner, location, contact) VALUES ('%s', '%s', '%s', NVL('%s', CHR(0)), %d, %d, %d, NVL('%s', CHR(0)), %d, %s, %s, %d, %d, %s, NVL('%s', CHR(0)), NVL('%s', CHR(0)))",
2884200f 6081 aprn_fields,
e5a63571 6082 16,
012fc215 6083 0,
6084 0,
29028043 6085 NULL,
2884200f 6086 &aprn_validate,
012fc215 6087 },
6088
1a9a0a59 6089 {
6090 /* Q_UPRN - UPDATE_PRINTER */
6091 "update_printer",
6092 "uprn",
c44ddfa7 6093 2,
1a9a0a59 6094 UPDATE,
6095 "pr",
6096 PRINTERS_TABLE,
6097 "printers SET name = '%s', type = '%s', hwtype = '%s', duplexname = NVL('%s', CHR(0)), mach_id = %d, loghost = %d, rm = %d, rp = NVL('%s', CHR(0)), rq = %d, ka = %d, pc = %d, ac = %d, lpc_acl = %d, banner = %d, location = NVL('%s', CHR(0)), contact = NVL('%s', CHR(0))",
6098 uprn_fields,
6099 16,
6100 0,
6101 0,
6102 NULL,
6103 &uprn_validate,
6104 },
6105
012fc215 6106 {
2884200f 6107 /* Q_DPRN - DELETE_PRINTER */
6108 "delete_printer",
6109 "dprn",
c44ddfa7 6110 2,
012fc215 6111 DELETE,
2884200f 6112 "pr",
6113 PRINTERS_TABLE,
012fc215 6114 0,
2884200f 6115 aprn_fields,
012fc215 6116 0,
99e09b48 6117 "name = '%s'",
012fc215 6118 1,
29028043 6119 NULL,
2884200f 6120 &dprn_validate,
012fc215 6121 },
6122
1a9a0a59 6123 {
6124 /* Q_GPSV - GET_PRINT_SERVER */
6125 "get_print_server",
6126 "gpsv",
c44ddfa7 6127 2,
1a9a0a59 6128 RETRIEVE,
6129 "ps",
6130 PRINTSERVERS_TABLE,
6131 "m.name, ps.kind, s.string, ps.owner_type, ps.owner_id, l.name, TO_CHAR(ps.modtime, 'DD-mon-YYYY HH24:MI:SS'), ps.modby, ps.modwith FROM printservers ps, machine m, strings s, list l",
6132 gpsv_fields,
6133 9,
6134 "ps.mach_id = %d AND m.mach_id = ps.mach_id AND s.string_id = ps.printer_types AND l.list_id = ps.lpc_acl",
6135 1,
6136 NULL,
6137 &gpsv_validate,
6138 },
6139
6140 {
6141 /* Q_APSV - ADD_PRINT_SERVER */
6142 "add_print_server",
6143 "apsv",
c44ddfa7 6144 2,
1a9a0a59 6145 APPEND,
6146 "ps",
6147 PRINTSERVERS_TABLE,
6148 "INTO printservers (mach_id, kind, printer_types, owner_type, owner_id, lpc_acl) VALUES (%d, '%s', %d, '%s', %d, %d)",
6149 apsv_fields,
6150 6,
6151 0,
6152 0,
6153 NULL,
6154 &apsv_validate,
6155 },
6156
6157 {
6158 /* Q_UPSV - UPDATE_PRINT_SERVER */
6159 "update_print_server",
6160 "upsv",
c44ddfa7 6161 2,
1a9a0a59 6162 UPDATE,
6163 "ps",
6164 PRINTSERVERS_TABLE,
6165 "printservers SET kind = '%s', printer_types = %d, owner_type = '%s', owner_id = %d, lpc_acl = %d",
6166 apsv_fields,
6167 5,
6168 "mach_id = %d",
6169 1,
6170 NULL,
6171 &apsv_validate,
6172 },
6173
6174 {
6175 /* Q_DPSV - DELETE_PRINT_SERVER */
6176 "delete_print_server",
6177 "dpsv",
c44ddfa7 6178 2,
1a9a0a59 6179 DELETE,
6180 "ps",
6181 PRINTSERVERS_TABLE,
6182 0,
6183 dpsv_fields,
6184 0,
6185 "mach_id = %d",
6186 1,
6187 NULL,
6188 &dpsv_validate,
6189 },
6190
d33e787c 6191 {
6192 /* Q_GALI - GET_ALIAS */
6193 "get_alias",
6194 "gali",
c44ddfa7 6195 2,
d33e787c 6196 RETRIEVE,
6197 "a",
03c05291 6198 ALIAS_TABLE,
6199 "name, type, trans FROM alias",
d33e787c 6200 gali_fields,
6201 3,
263a36d4 6202 "name LIKE '%s' AND type LIKE '%s' AND trans LIKE '%s'",
d33e787c 6203 3,
29028043 6204 "type, name, trans",
263a36d4 6205 NULL,
d33e787c 6206 },
6207
6208 {
6209 /* Q_AALI - ADD_ALIAS */
6210 "add_alias",
6211 "aali",
c44ddfa7 6212 2,
d33e787c 6213 APPEND,
6214 "a",
03c05291 6215 ALIAS_TABLE,
4e5ec77f 6216 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
d33e787c 6217 aali_fields,
6218 3,
7ac48069 6219 NULL,
d33e787c 6220 0,
29028043 6221 NULL,
d33e787c 6222 &aali_validate,
6223 },
6224
6225 {
6226 /* Q_DALI - DELETE_ALIAS */
6227 "delete_alias",
6228 "dali",
c44ddfa7 6229 2,
d33e787c 6230 DELETE,
6231 "a",
03c05291 6232 ALIAS_TABLE,
7ac48069 6233 NULL,
d33e787c 6234 aali_fields,
6235 0,
5eaef520 6236 "name = '%s' AND type = '%s' AND trans = '%s'",
d33e787c 6237 3,
29028043 6238 NULL,
d33e787c 6239 &dali_validate,
6240 },
6241
6242 {
6243 /* Q_GVAL - GET_VALUE */
6244 "get_value",
6245 "gval",
c44ddfa7 6246 2,
d33e787c 6247 RETRIEVE,
0c345c78 6248 "val",
03c05291 6249 NUMVALUES_TABLE,
6250 "value FROM numvalues",
d33e787c 6251 gval_fields,
6252 1,
03c05291 6253 "name = '%s'",
d33e787c 6254 1,
29028043 6255 NULL,
d33e787c 6256 &gval_validate,
6257 },
6258
6259 {
6260 /* Q_AVAL - ADD_VALUE */
6261 "add_value",
6262 "aval",
c44ddfa7 6263 2,
d33e787c 6264 APPEND,
0c345c78 6265 "val",
03c05291 6266 NUMVALUES_TABLE,
4e5ec77f 6267 "INTO numvalues (name, value) VALUES ('%s', %s)",
d33e787c 6268 aval_fields,
6269 2,
7ac48069 6270 NULL,
d33e787c 6271 0,
29028043 6272 NULL,
d33e787c 6273 &aval_validate,
6274 },
6275
6276 {
6277 /* Q_UVAL - UPDATE_VALUE */
6278 "update_value",
6279 "uval",
c44ddfa7 6280 2,
d33e787c 6281 UPDATE,
0c345c78 6282 "val",
03c05291 6283 NUMVALUES_TABLE,
4e5ec77f 6284 "numvalues SET value = %s",
d33e787c 6285 aval_fields,
6286 1,
99e09b48 6287 "name = '%s'",
d33e787c 6288 1,
29028043 6289 NULL,
d33e787c 6290 &aval_validate,
6291 },
6292
6293 {
6294 /* Q_DVAL - DELETE_VALUE */
6295 "delete_value",
6296 "dval",
c44ddfa7 6297 2,
d33e787c 6298 DELETE,
0c345c78 6299 "val",
03c05291 6300 NUMVALUES_TABLE,
7ac48069 6301 NULL,
d33e787c 6302 dval_fields,
6303 0,
99e09b48 6304 "name = '%s'",
d33e787c 6305 1,
29028043 6306 NULL,
d33e787c 6307 &aval_validate,
6308 },
6309
6310 {
6311 /* Q_GATS - GET_ALL_TABLE_STATS */
6312 "get_all_table_stats",
6313 "gats",
c44ddfa7 6314 2,
d33e787c 6315 RETRIEVE,
6316 "tbs",
03c05291 6317 TBLSTATS_TABLE,
6318 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
d33e787c 6319 gats_fields,
45bf7573 6320 5,
7ac48069 6321 NULL,
d33e787c 6322 0,
29028043 6323 "table_name",
d33e787c 6324 0,
6325 },
6326
2962e9ec 6327 {
6328 /* Q__SDL - _SET_DEBUG_LEVEL */
6329 "_set_debug_level",
6330 "_sdl",
c44ddfa7 6331 2,
2962e9ec 6332 UPDATE,
7ac48069 6333 NULL,
03c05291 6334 0,
7ac48069 6335 NULL,
2962e9ec 6336 _sdl_fields,
6337 1,
7ac48069 6338 NULL,
2962e9ec 6339 0,
29028043 6340 NULL,
2962e9ec 6341 &_sdl_validate,
6342 },
6343
ca3ca9c9 6344 {
6345 /* Q_GUSL - GET_USER_SIDS_BY_LOGIN, v4 */
6346 "get_user_sids_by_login",
6347 "gusl",
6348 4,
6349 RETRIEVE,
6350 "s",
6351 USERSIDS_TABLE,
6352 "u.login, us.sid, TO_CHAR(us.created, 'YYYY-MM-DD HH24:MI:SS') FROM users u, usersids us",
6353 gusl_fields,
6354 3,
77bf4a4d 6355 "us.users_id = %d AND u.users_id = us.users_id AND SUBSTR(us.sid, 1, LENGTH(us.sid)-8) = '%s'",
6356 2,
6357 NULL,
ca3ca9c9 6358 &gusl_validate,
6359 },
6360
6361 {
6362 /* Q_AUSL - ADD_USER_SID_BY_LOGIN, v4 */
6363 "add_user_sid_by_login",
6364 "ausl",
6365 4,
6366 APPEND,
6367 "s",
6368 USERSIDS_TABLE,
6369 "INTO usersids (users_id, sid) VALUES (%d, '%s')",
6370 ausl_fields,
6371 2,
6372 NULL,
6373 0,
6374 NULL,
6375 &ausl_validate,
6376 },
6377
6378 {
6379 /* Q_GLSN - GET_LIST_SIDS_BY_NAME, v4 */
6380 "get_list_sids_by_name",
6381 "glsn",
6382 4,
6383 RETRIEVE,
6384 "s",
6385 LISTSIDS_TABLE,
6386 "l.name, ls.sid, TO_CHAR(ls.created, 'YYYY-MM-DD HH24:MI:SS') FROM list l, listsids ls",
6387 glsn_fields,
6388 3,
77bf4a4d 6389 "ls.list_id = %d AND l.list_id = ls.list_id AND SUBSTR(ls.sid, 1, LENGTH(ls.sid)-8) = '%s'",
6390 2,
6391 NULL,
ca3ca9c9 6392 &glsn_validate,
6393 },
6394
6395 {
6396 /* Q_ALSN - ADD_LIST_SID_BY_NAME, v4 */
6397 "add_list_sid_by_name",
6398 "alsn",
6399 4,
6400 APPEND,
6401 "s",
6402 LISTSIDS_TABLE,
6403 "INTO listsids (list_id, sid) VALUES (%d, '%s')",
6404 alsn_fields,
6405 2,
6406 NULL,
6407 0,
6408 NULL,
6409 &alsn_validate,
6410 },
6411
77bf4a4d 6412 {
6413 /* Q_GDDS - GET_DISTINCT_DOMAIN_SIDS, v4 */
6414 "get_distinct_domain_sids",
6415 "gdds",
6416 4,
6417 RETRIEVE,
6418 "s",
6419 USERSIDS_TABLE,
6420 "DISTINCT SUBSTR(sid, 1, LENGTH(sid)-8) FROM usersids",
6421 gdds_fields,
6422 1,
6423 NULL,
6424 0,
6425 NULL,
6426 NULL,
6427 },
6428
d33e787c 6429};
6430
c44ddfa7 6431int QueryCount = (sizeof(Queries) / sizeof(struct query));
This page took 1.377392 seconds and 5 git commands to generate.