* $Header$
*
* Copyright 1987, 1988 by the Massachusetts Institute of Technology.
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
*/
+#include <mit-copyright.h>
#include "query.h"
#include "sms_et.h"
int setup_afil();
int setup_ufil();
int setup_dfil();
-int setup_ssif();
-int setup_sshi();
int setup_dnfp();
int setup_dnfq();
+int setup_sshi();
+int setup_akum();
/* Query Followup Routines */
int followup_fix_modby();
int followup_ausr();
int followup_gpob();
int followup_glin();
-int followup_amtl();
int followup_anfq();
int followup_gzcl();
int followup_gsha();
+int followup_gnfq();
int set_modtime();
int set_modtime_by_id();
int set_finger_modtime();
int set_pobox_modtime();
-int set_mach_modtime();
+int set_uppercase_modtime();
int set_mach_modtime_by_id();
int set_cluster_modtime_by_id();
int set_serverhost_modtime();
/* Special Queries */
int set_pobox();
int get_list_info();
-int get_acl_use();
+int add_member_to_list();
+int delete_member_from_list();
+int get_ace_use();
int qualified_get_lists();
int get_members_of_list();
int qualified_get_server();
int count_members_of_list();
int get_lists_of_member();
int register_user();
-int add_user_group();
\f
* they can be shared.
*/
-static char ACL_NAME[] = "acl_name";
-static char ACL_TYPE[] = "acl_type";
+static char ACE_NAME[] = "ace_name";
+static char ACE_TYPE[] = "ace_type";
static char CLASS[] = "class";
static char CLU_ID[] = "clu_id";
static char CLUSTER[] = "cluster";
{V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
};
+static struct valobj VOuser0lock[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
+ {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
+};
+
static struct valobj VOmach0[] = {
{V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
};
{V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
};
+static struct valobj VOfilsys0[] = {
+ {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+};
+
static struct valobj VOchar0[] = {
{V_CHAR, 0},
};
};
static struct valobj VOfilsys0user1[] = {
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
{V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
{V_ID, 1, USERS, LOGIN, USERS_ID, SMS_USER},
};
};
static struct valobj ausr_valobj[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
{V_CHAR, 0},
{V_CHAR, 3},
{V_CHAR, 4},
static struct validate ausr_validate = {
ausr_valobj,
- 6,
+ 7,
LOGIN,
"u.login = \"%s\"",
1,
};
static struct validate rusr_validate = {
- 0,
- 0,
+ ausr_valobj,
+ 1,
0,
0,
0,
};
static struct valobj uusr_valobj[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
{V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
{V_RENAME, 1, USERS, LOGIN, USERS_ID, SMS_NOT_UNIQUE},
{V_CHAR, 4},
static struct validate uusr_validate = {
uusr_valobj,
- 7,
+ 8,
0,
0,
0,
};
static struct validate uush_validate = {
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
};
static struct validate uust_validate = {
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
};
static struct validate dusr_validate = {
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
};
static struct valobj dubu_valobj[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
{V_ID, 0, USERS, UID, USERS_ID, SMS_USER}
};
static struct validate dubu_validate = {
dubu_valobj,
- 1,
+ 2,
0,
0,
0,
0,
};
+static char *gkum_fields[] = { LOGIN, "kerberos",
+ LOGIN, "kerberos" };
+
+static char *akum_fields[] = { LOGIN, "kerberos" };
+
+static struct valobj akum_valobj[] =
+{
+ {V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
+ {V_ID, 1, "strings", "string", "string_id", SMS_NO_MATCH},
+};
+
+static struct validate akum_validate =
+{
+ akum_valobj,
+ 1,
+ USERS_ID,
+ "k.users_id = %d or k.string_id = %d",
+ 2,
+ USERS_ID,
+ access_user,
+ setup_akum,
+ 0
+};
+
+static struct validate dkum_validate =
+{
+ akum_valobj,
+ 2,
+ USERS_ID,
+ "k.users_id = %d and k.string_id = %d",
+ 2,
+ USERS_ID,
+ access_user,
+ 0,
+ 0
+};
+
static char *gfbl_fields[] = {
LOGIN,
LOGIN, "fullname", "nickname", "home_addr",
};
static struct validate ufbl_validate = {
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
};
static struct valobj spob_valobj[] = {
+ {V_LOCK, 0, USERS, 0, USERS_ID, SMS_DEADLOCK},
{V_ID, 0, USERS, LOGIN, USERS_ID, SMS_USER},
{V_TYPE, 1, "pobox", 0, 0, SMS_TYPE},
};
static struct validate spob_validate = /* SET_POBOX */
{
spob_valobj,
- 2,
+ 3,
0,
0,
0,
static struct validate spop_validate = /* SET_POBOX_POP */
{
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
static struct validate dpob_validate = /* DELETE_POBOX */
{
- VOuser0,
- 1,
+ VOuser0lock,
+ 2,
0,
0,
0,
static struct valobj amac_valobj[] = {
{V_CHAR, 0},
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
{V_TYPE, 1, "mac_type", 0, 0, SMS_TYPE},
};
static struct validate amac_validate = {
amac_valobj,
- 2,
+ 3,
NAME,
"m.name = uppercase(\"%s\")",
1,
MACH_ID,
0,
0,
- set_mach_modtime,
+ set_uppercase_modtime,
};
static char *umac_fields[] = {
};
static struct valobj umac_valobj[] = {
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
{V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
{V_RENAME, 1, MACHINE, NAME, MACH_ID, SMS_NOT_UNIQUE},
{V_TYPE, 2, "mac_type", 0, 0, SMS_TYPE},
static struct validate umac_validate = {
umac_valobj,
- 3,
+ 4,
0,
0,
0,
NAME,
};
+static struct valobj dmac_valobj[] = {
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
+ {V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
+};
+
static struct validate dmac_validate = {
- VOmach0,
- 1,
+ dmac_valobj,
+ 2,
0,
0,
0,
NAME, DESC, LOCATION,
};
+static struct valobj aclu_valobj[] = {
+ {V_LOCK, 0, CLUSTER, 0, CLU_ID, SMS_DEADLOCK},
+ {V_CHAR, 0}
+};
+
static struct validate aclu_validate = /* for aclu */
{
- VOchar0,
- 1,
+ aclu_valobj,
+ 2,
NAME,
"c.name = \"%s\"",
1,
};
static struct valobj uclu_valobj[] = {
+ {V_LOCK, 0, CLUSTER, 0, CLU_ID, SMS_DEADLOCK},
{V_ID, 0, CLUSTER, NAME, CLU_ID, SMS_CLUSTER},
{V_RENAME, 1, CLUSTER, NAME, CLU_ID, SMS_NOT_UNIQUE},
};
};
static char *gcld_fields[] = {
+ CLUSTER, "serv_label",
+ CLUSTER, "serv_label", "serv_cluster",
+};
+
+static char *acld_fields[] = {
CLUSTER, "serv_label", "serv_cluster",
};
static struct valobj acld_valobj[] =
{
{V_ID, 0, CLUSTER, NAME, CLU_ID, SMS_CLUSTER},
- {V_TYPE, 1, "slabel", 0, 0, SMS_TYPE},
{V_CHAR, 2},
};
static char *gsin_fields[] = {
SERVICE,
- SERVICE, "update_int", "target_file", "script", "dfgen",
+ SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
TYPE, "enable", "inprogress", "harderror", "errmsg",
- ACL_TYPE, ACL_NAME, MOD1, MOD2, MOD3,
+ ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
};
static struct validate gsin_validate =
static char *asin_fields[] = {
SERVICE, "update_int", "target_file", "script", TYPE, "enable",
- ACL_TYPE, ACL_NAME,
+ ACE_TYPE, ACE_NAME,
};
static struct valobj asin_valobj[] = {
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
{V_CHAR, 0},
{V_TYPE, 4, "service", 0, 0, SMS_TYPE},
- {V_TYPE, 6, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 7, 0, 0, 0, SMS_ACL},
+ {V_TYPE, 6, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 7, 0, 0, 0, SMS_ACE},
};
static struct validate asin_validate = /* for asin, usin */
{
asin_valobj,
- 4,
+ 5,
NAME,
- "s.name = \"%s\"",
+ "s.name = uppercase(\"%s\")",
1,
0,
0,
0,
- set_modtime,
+ set_uppercase_modtime,
};
static struct validate rsve_validate = {
- 0,
- 0,
+ asin_valobj,
+ 1,
NAME,
- "s.name = \"%s\"",
+ "s.name = uppercase(\"%s\")",
1,
0,
access_service,
0,
- set_modtime,
+ set_uppercase_modtime,
};
static char *ssif_fields[] = {
- SERVICE, "dfgen", "inprogress", "harderror", "errmsg",
+ SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
};
static struct validate ssif_validate = {
- VOdate1,
+ asin_valobj,
1,
NAME,
- "s.name = \"%s\"",
+ "s.name = uppercase(\"%s\")",
1,
0,
0,
- setup_ssif,
+ 0,
0,
};
};
static struct validate dsin_validate = {
- 0,
- 0,
+ asin_valobj,
+ 1,
NAME,
- "s.name = \"%s\"",
+ "s.name = uppercase(\"%s\")",
1,
0,
0,
};
static struct valobj ashi_valobj[] = {
+ {V_LOCK, 0, MACHINE, 0, MACH_ID, SMS_DEADLOCK},
{V_NAME, 0, "servers", NAME, 0, SMS_SERVICE},
{V_ID, 1, MACHINE, NAME, MACH_ID, SMS_MACHINE},
};
static struct validate ashi_validate = /* ashi & ushi */
{
ashi_valobj,
- 2,
+ 3,
SERVICE,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
0,
access_service,
static struct validate rshe_validate =
{
ashi_valobj,
- 2,
+ 3,
SERVICE,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
0,
access_service,
static struct validate ssho_validate =
{
ashi_valobj,
- 2,
+ 3,
SERVICE,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
0,
access_service,
static struct valobj sshi_valobj[] = {
{V_NAME, 0, "servers", NAME, 0, SMS_SERVICE},
- {V_ID, 1, MACHINE, NAME, MACH_ID, SMS_MACHINE},
- {V_DATE, 7, 0, 0, 0, SMS_DATE},
- {V_DATE, 8, 0, 0, 0, SMS_DATE},
};
static struct validate sshi_validate =
{
sshi_valobj,
- 4,
- SERVICE,
- "sh.service = \"%s\" and sh.mach_id = %d",
- 2,
+ 1,
+ 0,
+ 0,
+ 0,
0,
0,
setup_sshi,
static struct validate dshi_validate =
{
ashi_valobj,
- 2,
+ 3,
SERVICE,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
0,
access_service,
static char *gsha_fields[] = {
MACHINE,
- MACHINE, ACL_TYPE, ACL_NAME, MOD1, MOD2, MOD3,
+ MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
};
static struct validate gsha_validate =
};
static char *asha_fields[] = {
- MACHINE, ACL_TYPE, ACL_NAME,
+ MACHINE, ACE_TYPE, ACE_NAME,
};
static struct valobj asha_valobj[] = {
{V_ID, 0, MACHINE, NAME, MACH_ID, SMS_MACHINE},
- {V_TYPE, 1, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 2, 0, 0, 0, SMS_ACL},
+ {V_TYPE, 1, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 2, 0, 0, 0, SMS_ACE},
};
static struct validate asha_validate =
followup_fix_modby,
};
+static char *gfsn_fields[] = {
+ MACHINE, "parition",
+ LABEL, TYPE, MACHINE, NAME, "mount", "access", "comments", "owner", "owners",
+ "create", "lockertype", MOD1, MOD2, MOD3,
+};
+
static char *gfsg_fields[] = {
LIST,
LABEL, TYPE, MACHINE, NAME, "mount", "access", "comments", "owner", "owners",
static struct valobj afil_valobj[] = {
{V_CHAR, 0},
- {V_TYPE, 1, FILESYS, 0, 0, SMS_TYPE},
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
+ {V_TYPE, 1, FILESYS, 0, 0, SMS_FSTYPE},
{V_ID, 2, MACHINE, NAME, MACH_ID, SMS_MACHINE},
{V_CHAR, 3},
{V_ID, 7, USERS, LOGIN, USERS_ID, SMS_USER},
static struct validate afil_validate = {
afil_valobj,
- 7,
+ 8,
LABEL,
"fs.label = \"%s\"",
1,
};
static struct valobj ufil_valobj[] = {
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
{V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
{V_RENAME, 1, FILESYS, LABEL, FILSYS_ID, SMS_NOT_UNIQUE},
- {V_TYPE, 2, FILESYS, 0, 0, SMS_TYPE},
+ {V_TYPE, 2, FILESYS, 0, 0, SMS_FSTYPE},
{V_ID, 3, MACHINE, NAME, MACH_ID, SMS_MACHINE},
{V_CHAR, 4},
{V_ID, 8, USERS, LOGIN, USERS_ID, SMS_USER},
static struct validate ufil_validate = {
ufil_valobj,
- 8,
+ 9,
LABEL,
"fs.filsys_id = %d",
1,
};
static struct valobj dfil_valobj[] = {
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
{V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
};
static struct validate dfil_validate = {
dfil_valobj,
- 1,
+ 2,
"label",
"fs.filsys_id = %d",
1,
0,
};
+static char *gfgm_fields[] = {
+ "fsgroup", FILESYS, "sortkey"
+};
+
+static struct valobj gfgm_valobj[] = {
+ {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+ {V_SORT, 1},
+ {V_SORT, 0},
+};
+
+static struct validate gfgm_validate = {
+ gfgm_valobj,
+ 3,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static struct valobj aftg_valobj[] = {
+ {V_LOCK, 0, FILESYS, 0, FILSYS_ID, SMS_DEADLOCK},
+ {V_ID, 0, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+ {V_ID, 1, FILESYS, LABEL, FILSYS_ID, SMS_FILESYS},
+};
+
+static struct validate aftg_validate = {
+ aftg_valobj,
+ 3,
+ "group_id",
+ "fg.group_id = %d and fg.filsys_id = %d",
+ 2,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
static char *ganf_fields[] = {
MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
};
};
static char *gnfq_fields[] = {
- FILESYS,
+ FILESYS, LOGIN,
FILESYS, LOGIN, "quota", DIR, MACHINE, MOD1, MOD2, MOD3,
};
+static struct valobj gnfq_valobj[] = {
+ {V_ID, 1, USERS, LOGIN, USERS_ID, SMS_USER},
+ {V_SORT, 0},
+};
+
static struct validate gnfq_validate = {
- VOsort0,
- 1,
+ gnfq_valobj,
+ 2,
0,
0,
0,
0,
access_filesys,
0,
- followup_fix_modby,
+ followup_gnfq,
};
static char *gnqp_fields[] = {
FILESYS, LOGIN, "quota", DIR, MACHINE, MOD1, MOD2, MOD3,
};
-static char *gnqu_fields[] = {
- LOGIN,
- FILESYS, LOGIN, "quota", DIR, MACHINE, MOD1, MOD2, MOD3,
-};
-
-static struct validate gnqu_validate = {
- VOuser0sort,
- 2,
- 0,
- 0,
- 0,
- 0,
- access_user,
- 0,
- followup_fix_modby,
-};
-
static char *anfq_fields[] = {
FILESYS, LOGIN, "quota",
};
static struct validate anfq_validate = {
VOfilsys0user1,
- 2,
+ 3,
USERS_ID,
"nq.filsys_id = %d and nq.users_id = %d",
2,
static struct validate unfq_validate = {
VOfilsys0user1,
- 2,
+ 3,
USERS_ID,
"nq.filsys_id = %d and nq.users_id = %d",
2,
static struct validate dnfq_validate = {
VOfilsys0user1,
- 2,
+ 3,
USERS_ID,
"nq.filsys_id = %d and nq.users_id = %d",
2,
static char *glin_fields[] = {
NAME,
NAME, "active", "public", "hidden", "maillist", "group", "gid",
- ACL_TYPE, ACL_NAME, DESC, MOD1, MOD2, MOD3,
+ ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
};
static struct validate glin_validate = {
static char *alis_fields[] = {
NAME, "active", "public", "hidden", "maillist", "group", "gid",
- ACL_TYPE, ACL_NAME, DESC,
+ ACE_TYPE, ACE_NAME, DESC,
};
static struct valobj alis_valobj[] = {
+ {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
{V_CHAR, 0},
- {V_TYPE, 7, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 8, 0, 0, LIST_ID, SMS_ACL},
+ {V_TYPE, 7, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 8, 0, 0, LIST_ID, SMS_ACE},
};
static struct validate alis_validate = {
alis_valobj,
- 3,
+ 4,
NAME,
"l.name = \"%s\"",
1,
static char *ulis_fields[] = {
NAME,
"newname", "active", "public", "hidden", "maillist", "group", "gid",
- ACL_TYPE, ACL_NAME, DESC,
+ ACE_TYPE, ACE_NAME, DESC,
};
static struct valobj ulis_valobj[] = {
+ {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
{V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
{V_RENAME, 1, LIST, NAME, LIST_ID, SMS_NOT_UNIQUE},
- {V_TYPE, 8, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 9, 0, 0, LIST_ID, SMS_ACL},
+ {V_TYPE, 8, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 9, 0, 0, LIST_ID, SMS_ACE},
};
static struct validate ulis_validate = {
ulis_valobj,
- 4,
+ 5,
NAME,
"l.list_id = %d",
1,
};
static struct valobj amtl_valobj[] = {
+ {V_LOCK, 0, LIST, 0, LIST_ID, SMS_DEADLOCK},
{V_ID, 0, LIST, NAME, LIST_ID, SMS_LIST},
{V_TYPE, 1, "member", 0, 0, SMS_TYPE},
{V_TYPEDATA, 2, 0, 0, 0, SMS_NO_MATCH},
};
-static struct validate amtl_validate = /* for amtl and dmfl */
+static struct validate amtl_validate =
{
amtl_valobj,
- 3,
- "member_id",
- "m.list_id = %d and m.member_type = \"%s\" and m.member_id = %d",
- 3,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ access_list,
+ 0,
+ add_member_to_list,
+};
+
+static struct validate dmfl_validate =
+{
+ amtl_valobj,
+ 4,
+ 0,
+ 0,
+ 0,
0,
access_list,
0,
- followup_amtl,
+ delete_member_from_list,
};
static char *gaus_fields[] = {
- ACL_TYPE, ACL_NAME,
+ ACE_TYPE, ACE_NAME,
"use_type", "use_name",
};
0,
access_member,
0,
- get_acl_use,
+ get_ace_use,
};
static char *qgli_fields[] = {
count_members_of_list,
};
-static char *augr_fields[] = {
- LOGIN,
-};
-
-static struct validate augr_validate = {
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- add_user_group,
-};
-
static char *gzcl_fields[] = {
CLASS,
CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
static struct valobj azcl_valobj[] = {
{V_CHAR, 0},
- {V_TYPE, 1, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 2, 0, 0, LIST_ID, SMS_ACL},
- {V_TYPE, 3, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 4, 0, 0, LIST_ID, SMS_ACL},
- {V_TYPE, 5, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 6, 0, 0, LIST_ID, SMS_ACL},
- {V_TYPE, 7, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 8, 0, 0, LIST_ID, SMS_ACL},
+ {V_TYPE, 1, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 2, 0, 0, LIST_ID, SMS_ACE},
+ {V_TYPE, 3, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 4, 0, 0, LIST_ID, SMS_ACE},
+ {V_TYPE, 5, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 6, 0, 0, LIST_ID, SMS_ACE},
+ {V_TYPE, 7, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 8, 0, 0, LIST_ID, SMS_ACE},
};
static struct validate azcl_validate = {
static struct valobj uzcl_valobj[] = {
{V_RENAME, 1, "zephyr", CLASS, 0, SMS_NOT_UNIQUE},
- {V_TYPE, 2, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 3, 0, 0, LIST_ID, SMS_ACL},
- {V_TYPE, 4, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 5, 0, 0, LIST_ID, SMS_ACL},
- {V_TYPE, 6, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 7, 0, 0, LIST_ID, SMS_ACL},
- {V_TYPE, 8, ACL_TYPE, 0, 0, SMS_ACL},
- {V_TYPEDATA, 9, 0, 0, LIST_ID, SMS_ACL},
+ {V_TYPE, 2, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 3, 0, 0, LIST_ID, SMS_ACE},
+ {V_TYPE, 4, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 5, 0, 0, LIST_ID, SMS_ACE},
+ {V_TYPE, 6, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 7, 0, 0, LIST_ID, SMS_ACE},
+ {V_TYPE, 8, ACE_TYPE, 0, 0, SMS_ACE},
+ {V_TYPEDATA, 9, 0, 0, LIST_ID, SMS_ACE},
};
static struct validate uzcl_validate = {
static char *gpcp_fields[] = {
"printer",
- "printer", "printcap", MOD1, MOD2, MOD3,
+ "printer", "spooling_host", "spool_directory", "rprinter", "comments",
+ MOD1, MOD2, MOD3,
};
static char *apcp_fields[] = {
- "printer", "printcap", MOD1, MOD2, MOD3,
+ "printer", "spooling_host", "spool_directory", "rprinter", "comments",
+ MOD1, MOD2, MOD3,
+};
+
+static struct valobj apcp_valobj[] = {
+ {V_CHAR, 0},
+ {V_ID, 1, MACHINE, NAME, MACH_ID, SMS_MACHINE},
};
static struct validate apcp_validate = {
- VOchar0,
+ apcp_valobj,
+ 2,
+ NAME,
+ "p.name = \"%s\"",
+ 1,
+ 0,
+ 0,
+ 0,
+ set_modtime,
+};
+
+static struct validate dpcp_validate = {
+ 0,
+ 0,
+ NAME,
+ "p.name = \"%s\"",
1,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+static char *gpdm_fields[] = {
+ NAME,
+ NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
+};
+
+static char *apdm_fields[] = {
+ NAME, "rpcnum", "host"
+};
+
+static struct valobj apdm_valobj[] = {
+ {V_CHAR, 0},
+ {V_ID, 2, MACHINE, NAME, MACH_ID, SMS_MACHINE},
+};
+
+static struct validate apdm_validate = {
+ apdm_valobj,
+ 2,
NAME,
"p.name = \"%s\"",
1,
set_modtime,
};
+static struct validate dpdm_validate = {
+ 0,
+ 0,
+ NAME,
+ "p.name = \"%s\"",
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
static char *gali_fields[] = {
NAME, TYPE, "trans",
NAME, TYPE, "trans",
"%c = u.login, %c = text(u.uid), %c = u.shell, %c = u.last, %c = u.first, %c = u.middle",
galo_fields,
6,
- "u.status != 0",
+ "u.status = 1",
0,
0,
},
&dubu_validate,
},
+ {
+ /* Q_GKUM - GET_KERBEROS_USER_MAP */
+ "get_kerberos_user_map",
+ "gkum",
+ RETRIEVE,
+ "k",
+ "krbmap",
+ "%c = users.login, %c = strings.string",
+ gkum_fields,
+ 2,
+ "users.login = \"%s\" and strings.string = \"%s\" and k.users_id = users.users_id and k.string_id = strings.string_id",
+ 2,
+ &VDsort2,
+ },
+
+ {
+ /* Q_AKUM - ADD_KERBEROS_USER_MAP */
+ "add_kerberos_user_map",
+ "akum",
+ APPEND,
+ "k",
+ "krbmap",
+ "users_id = %i4, string_id = %i4",
+ akum_fields,
+ 2,
+ 0,
+ 0,
+ &akum_validate,
+ },
+
+ {
+ /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
+ "delete_kerberos_user_map",
+ "dkum",
+ DELETE,
+ "k",
+ "krbmap",
+ 0,
+ akum_fields,
+ 0,
+ "k.users_id = %d and k.string_id = %d",
+ 2,
+ &dkum_validate,
+ },
+
{
/* Q_GFBL - GET_FINGER_BY_LOGIN */
"get_finger_by_login",
"s",
"svc",
"clu_id = %i4, serv_label = %c, serv_cluster = %c",
- gcld_fields,
+ acld_fields,
3,
(char *)0,
0,
"s",
"svc",
(char *)0,
- gcld_fields,
+ acld_fields,
0,
"s.clu_id = %d and s.serv_label = \"%s\" and s.serv_cluster = \"%s\"",
3,
RETRIEVE,
"s",
"servers",
- "%c = s.name, %c = text(s.update_int), %c = s.target_file, %c = s.script, %c = s.dfgen, %c = s.type, %c = text(s.enable), %c = text(s.inprogress), %c = text(s.harderror), %c = s.errmsg, %c = s.acl_type, %c = text(s.acl_id), %c = s.modtime, %c = text(s.modby), %c = s.modwith",
+ "%c = s.name, %c = text(s.update_int), %c = s.target_file, %c = s.script, %c = text(s.dfgen), %c = text(s.dfcheck), %c = s.type, %c = text(s.enable), %c = text(s.inprogress), %c = text(s.harderror), %c = s.errmsg, %c = s.acl_type, %c = text(s.acl_id), %c = s.modtime, %c = text(s.modby), %c = s.modwith",
gsin_fields,
- 15,
- "s.name = \"%s\"",
+ 16,
+ "s.name = uppercase(\"%s\")",
1,
&gsin_validate,
},
APPEND,
"s",
"servers",
- "name = %c, update_int = int4(%c), target_file = %c, script = %c, type = %c, enable = int1(%c), acl_type = %c, acl_id = %i4",
+ "name = uppercase(%c), update_int = int4(%c), target_file = %c, script = %c, type = %c, enable = int1(%c), acl_type = %c, acl_id = %i4",
asin_fields,
8,
(char *)0,
"update_int = int4(%c), target_file = %c, script = %c, type = %c, enable = int1(%c), acl_type = %c, acl_id = %i4",
asin_fields,
7,
- "s.name = \"%s\"",
+ "s.name = uppercase(\"%s\")",
1,
&asin_validate,
},
UPDATE,
"s",
"servers",
- "harderror = 0",
+ "harderror = 0, dfcheck = s.dfgen",
dsin_fields,
0,
- "s.name = \"%s\"",
+ "s.name = uppercase(\"%s\")",
1,
&rsve_validate,
},
UPDATE,
"s",
"servers",
- "dfgen = %c, inprogress = int1(%c), harderror = int1(%c), errmsg = %c",
+ "dfgen = int4(%c), dfcheck = int4(%c), inprogress = int1(%c), harderror = int1(%c), errmsg = %c",
ssif_fields,
- 4,
- "s.name = \"%s\"",
+ 5,
+ "s.name = uppercase(\"%s\")",
1,
&ssif_validate,
},
(char *)0,
dsin_fields,
0,
- "s.name = \"%s\"",
+ "s.name = uppercase(\"%s\")",
1,
&dsin_validate,
},
RETRIEVE,
"sh",
"serverhosts",
- "%c = sh.service, %c = machine.name, %c = text(sh.enable), %c = text(sh.override), %c = text(sh.success), %c = text(sh.inprogress), %c = text(sh.hosterror), %c = sh.hosterrmsg, %c = sh.ltt, %c = sh.lts, %c = text(sh.value1), %c = text(sh.value2), %c = sh.value3, %c = sh.modtime, %c = text(sh.modby), %c = sh.modwith",
+ "%c = sh.service, %c = machine.name, %c = text(sh.enable), %c = text(sh.override), %c = text(sh.success), %c = text(sh.inprogress), %c = text(sh.hosterror), %c = sh.hosterrmsg, %c = text(sh.ltt), %c = text(sh.lts), %c = text(sh.value1), %c = text(sh.value2), %c = sh.value3, %c = sh.modtime, %c = text(sh.modby), %c = sh.modwith",
gshi_fields,
16,
- "sh.service = \"%s\" and machine.name = uppercase(\"%s\") and machine.mach_id = sh.mach_id",
+ "sh.service = uppercase(\"%s\") and machine.name = uppercase(\"%s\") and machine.mach_id = sh.mach_id",
2,
&gshi_validate,
},
APPEND,
"sh",
"serverhosts",
- "service = %c, mach_id = %i4, enable = int1(%c), value1 = int4(%c), value2 = int4(%c), value3 = %c",
+ "service = uppercase(%c), mach_id = %i4, enable = int1(%c), value1 = int4(%c), value2 = int4(%c), value3 = %c",
ashi_fields,
6,
(char *)0,
"enable = int1(%c), value1 = int4(%c), value2 = int4(%c), value3 = %c",
ashi_fields,
4,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
&ashi_validate,
},
"hosterror = 0",
dshi_fields,
0,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
&rshe_validate,
},
"override = 1",
dshi_fields,
0,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
&ssho_validate,
},
"set_server_host_internal",
"sshi",
UPDATE,
- "sh",
+ "s",
"serverhosts",
- "override = int1(%c), success = int1(%c), inprogress = int1(%c), hosterror = int1(%c), hosterrmsg = %c, ltt = %c, lts = %c",
+ "override = int1(%c), success = int1(%c), inprogress = int1(%c), hosterror = int1(%c), hosterrmsg = %c, ltt = int4(%c), lts = int4(%c)",
sshi_fields,
7,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "s.service = uppercase(\"%s\") and s.mach_id = machine.mach_id and machine.name = \"%s\"",
2,
&sshi_validate,
},
(char *)0,
dshi_fields,
0,
- "sh.service = \"%s\" and sh.mach_id = %d",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = %d",
2,
&dshi_validate,
},
"%c = sh.service, %c = machine.name",
gslo_fields,
2,
- "sh.service = \"%s\" and sh.mach_id = machine.mach_id",
+ "sh.service = uppercase(\"%s\") and sh.mach_id = machine.mach_id",
1,
0,
},
&gfsm_validate,
},
+ {
+ /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
+ "get_filesys_by_nfsphys",
+ "gfsn",
+ RETRIEVE,
+ "fs",
+ FILESYS,
+ "%c = fs.label, %c = fs.type, %c = machine.name, %c = fs.name, %c = fs.mount, %c = fs.access, %c = fs.comments, %c = users.login, %c = list.name, %c = text(fs.createflg), %c = fs.lockertype, %c = fs.modtime, %c = text(fs.modby), %c = fs.modwith",
+ gfsn_fields,
+ 14,
+ "fs.mach_id = %d and machine.mach_id = fs.mach_id and fs.owner = users.users_id and fs.owners = list.list_id and nfsphys.nfsphys_id = fs.phys_id and nfsphys.dir = \"%s\" and fs.type = \"NFS\"",
+ 2,
+ &gfsm_validate,
+ },
+
{
/* Q_GFSG - GET_FILESYS_BY_GROUP */
"get_filesys_by_group",
&dfil_validate,
},
+ {
+ /* Q_GFGM - GET_FSGROUOP_MEMBERS */
+ "get_fsgroup_members",
+ "gfgm",
+ RETRIEVE,
+ "fg",
+ "fsgroup",
+ "%c = filesys.label, %c = fg.key",
+ gfgm_fields,
+ 2,
+ "fg.group_id = %d and filesys.filsys_id = fg.filsys_id",
+ 1,
+ &gfgm_validate,
+ },
+
+ {
+ /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
+ "add_filesys_to_fsgroup",
+ "aftg",
+ APPEND,
+ "fg",
+ "fsgroup",
+ "group_id = filesys.filsys_id, filsys_id = %i4, key = %c",
+ gfgm_fields,
+ 2,
+ "filesys.filsys_id = %d and filesys.type = \"FSGROUP\"",
+ 1,
+ &aftg_validate,
+ },
+
+ {
+ /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
+ "remove_filesys_from_fsgroup",
+ "rffg",
+ DELETE,
+ "fg",
+ "fsgroup",
+ (char *)0,
+ gfgm_fields,
+ 0,
+ "fg.group_id = %d and fg.filsys_id = %d",
+ 2,
+ &aftg_validate,
+ },
+
{
/* Q_GANF - GET_ALL_NFSPHYS */
"get_all_nfsphys",
{
/* Q_GNFQ - GET_NFS_QUOTAS */
- "get_nfs_quotas",
+ "get_nfs_quota",
"gnfq",
RETRIEVE,
"nq",
"nfsquota",
- "%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = nfsphys.dir, %c = machine.name, %c = nq.modtime, %c = text(nq.modby), %c = nq.modwith",
+ "%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = text(nq.phys_id), %c = machine.name, %c = nq.modtime, %c = text(nq.modby), %c = nq.modwith",
gnfq_fields,
8,
- "filesys.label = \"%s\" and filesys.phys_id = nfsphys.nfsphys_id and machine.mach_id = filesys.mach_id and users.users_id = nq.users_id and filesys.filsys_id = nq.filsys_id",
- 1,
+ "filesys.label = \"%s\" and nq.users_id = %d and filesys.filsys_id = nq.filsys_id and machine.mach_id = filesys.mach_id and users.users_id = nq.users_id",
+ 2,
&gnfq_validate,
},
"%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = nfsphys.dir, %c = machine.name",
gnqp_fields,
5,
- "filesys.mach_id = %d and nfsphys.dir = \"%s\" and nq.filsys_id = filesys.filsys_id and nfsphys.nfsphys_id = filesys.phys_id and users.users_id = nq.users_id and machine.mach_id = filesys.mach_id",
+ "nfsphys.mach_id = %d and nfsphys.dir = \"%s\" and nq.phys_id = nfsphys.nfsphys_id and filesys.filsys_id = nq.filsys_id and users.users_id = nq.users_id and machine.mach_id = nfsphys.mach_id",
2,
&VDmach,
},
- {
- /* Q_GNQU - GET_NFS_QUOTAS_BY_USER */
- "get_nfs_quotas_by_user",
- "gnqu",
- RETRIEVE,
- "nq",
- "nfsquota",
- "%c = filesys.label, %c = users.login, %c = text(nq.quota), %c = nfsphys.dir, %c = machine.name, %c = nq.modtime, %c = text(nq.modby), %c = nq.modwith",
- gnqu_fields,
- 8,
- "nq.users_id = %d and filesys.mach_id = machine.mach_id and nq.filsys_id = filesys.filsys_id and nfsphys.nfsphys_id = filesys.phys_id and users.users_id = nq.users_id",
- 1,
- &gnqu_validate,
- },
-
{
/* Q_ANFQ - ADD_NFS_QUOTA */
"add_nfs_quota",
APPEND,
"nq",
"nfsquota",
- "filsys_id = %i4, users_id = %i4, quota = int4(%c)",
+ "filsys_id = filesys.filsys_id, users_id = %i4, quota = int4(%c), phys_id = filesys.phys_id",
anfq_fields,
- 3,
- (char *)0,
- 0,
+ 2,
+ "filesys.filsys_id = %d",
+ 1,
&anfq_validate,
},
"add_member_to_list",
"amtl",
APPEND,
- "m",
- "members",
- "list_id=%i4, member_type=%c, member_id=%i4",
+ 0,
+ "imembers",
+ 0,
amtl_fields,
3,
(char *)0,
"delete_member_from_list",
"dmfl",
DELETE,
- "m",
- "members",
+ 0,
+ "imembers",
(char *)0,
amtl_fields,
0,
- "m.list_id = %d and m.member_type = \"%s\" and m.member_id = %d",
+ 0,
3,
- &amtl_validate,
+ &dmfl_validate,
},
{
- /* Q_GAUS - GET_ACL_USE */
- "get_acl_use",
+ /* Q_GAUS - GET_ACE_USE */
+ "get_ace_use",
"gaus",
RETRIEVE,
0,
"gmol",
RETRIEVE,
(char *)0,
- "members",
+ "imembers",
(char *)0,
gmol_fields,
0,
"glom",
RETRIEVE,
0,
- "members",
+ "imembers",
0,
glom_fields,
6,
"cmol",
RETRIEVE,
0,
- "members",
+ "imembers",
0,
cmol_fields,
1,
&cmol_validate,
},
- {
- /* Q_AUGR - ADD_USER_GROUP */
- "add_user_group",
- "augr",
- APPEND,
- (char *)0,
- (char *)0,
- (char *)0,
- augr_fields,
- 1,
- (char *)0,
- 0,
- &augr_validate,
- },
-
{
/* Q_GZCL - GET_ZEPHYR_CLASS */
"get_zephyr_class",
RETRIEVE,
"p",
"printcap",
- "%c = p.name, %c = p.pcap, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
+ "%c = p.name, %c = machine.name, %c = p.dir, %c = p.rp, %c = p.comments, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
gpcp_fields,
- 5,
- "p.name = \"%s\"",
+ 8,
+ "p.name = \"%s\" and machine.mach_id = p.mach_id",
1,
&VDsortf,
},
APPEND,
"p",
"printcap",
- "name = %c, pcap = %c",
+ "name = %c, mach_id = %i4, dir = %c, rp = %c, comments = %c",
apcp_fields,
- 2,
+ 5,
0,
0,
&apcp_validate,
0,
"p.name = \"%s\"",
1,
- &apcp_validate,
+ &dpcp_validate,
+ },
+
+ {
+ /* Q_GPDM - GET_PALLADIUM */
+ "get_palladium",
+ "gpdm",
+ RETRIEVE,
+ "p",
+ "palladium",
+ "%c = p.name, %c = text(p.ident), %c = machine.name, %c = p.modtime, %c = text(p.modby), %c = p.modwith",
+ gpdm_fields,
+ 6,
+ "p.name = \"%s\" and machine.mach_id = p.mach_id",
+ 1,
+ &VDsortf,
+ },
+
+ {
+ /* Q_APDM - ADD_PALLADIUM */
+ "add_palladium",
+ "apdm",
+ APPEND,
+ "p",
+ "palladium",
+ "name = %c, ident = int4(%c), mach_id = %i4",
+ apdm_fields,
+ 3,
+ 0,
+ 0,
+ &apdm_validate,
+ },
+
+ {
+ /* Q_DPDM - DELETE_PALLADIUM */
+ "delete_palladium",
+ "dpdm",
+ DELETE,
+ "p",
+ "palladium",
+ 0,
+ apdm_fields,
+ 0,
+ "p.name = \"%s\"",
+ 1,
+ &dpdm_validate,
},
{