* $Header$
*
* Copyright (C) 1987 by the Massachusetts Institute of Technology
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
*
*/
static char *rcsid_qsupport_qc = "$Header$";
#endif lint
+#include <mit-copyright.h>
#include "query.h"
#include "sms_server.h"
#include <ctype.h>
extern char *whoami, *strsave();
-extern int ingres_errno;
/* Specialized Access Routines */
##}
-/* Sets the modtime on a machine record. The machine name is in argv[0].
- * This routine is different from the generic set_modtime in that the
- * name is uppercased first.
+/* Like set_modtime, but uppercases the name first.
*/
-set_mach_modtime(q, argv, cl)
+set_uppercase_modtime(q, argv, cl)
struct query *q;
char **argv;
client *cl;
##{
-## char *host, *entity;
+## char *name, *entity, *table;
## int who;
entity = cl->entity;
who = cl->users_id;
+ table = q->rtable;
+ name = argv[0];
- host = argv[0];
-## repeat replace m (modtime = "now", modby = @who, modwith = @entity)
-## where m.name = uppercase(@host)
+## replace table (modtime = "now", modby = who, modwith = entity)
+## where table.#name = uppercase(name)
return(SMS_SUCCESS);
##}
## repeat retrieve (flag = any(l.#name where l.#name = @login))
if (flag)
return(SMS_IN_USE);
-## repeat retrieve (flag = any(filesys.#name where filesys.#name = @login))
+## repeat retrieve (flag = any(filesys.#label where filesys.#label = @login))
if (flag)
return(SMS_IN_USE);
- if (ingres_errno != 0) return(ingres_errno);
com_err(whoami, 0, "new login name OK");
/* choose place for pobox, put in mid */
## where sh.service = "POP" and m.mach_id = sh.mach_id and
## sh.value2 - sh.value1 = max(sh.value2-sh.value1 where sh.service="POP")
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount == 0)
return(SMS_NO_POBOX);
## pmodwith=@entity)
## where u.#users_id = @users_id
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount != 1)
return(SMS_INTERNAL);
set_pop_usage(mid, 1);
return(SMS_NO_ID);
## repeat retrieve (list_id = values.value) where values.name = "list_id"
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount != 1)
return(SMS_INTERNAL);
## repeat append list (name = @login, #list_id = @list_id, active = 1,
## modby = @who, modwith = @entity)
## where values.name = "gid"
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount != 1)
return(SMS_INTERNAL);
## repeat append members (#list_id = @list_id, member_type = "USER",
## member_id = @users_id)
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount != 1)
return(SMS_INTERNAL);
com_err(whoami, 0, "group list created");
m_id = mid;
}
## }
- if (ingres_errno != 0) return(ingres_errno);
if (maxsize == 0)
return(SMS_NO_FILESYS);
## modby = @who, modwith = @entity)
## where values.name = "filsys_id"
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount != 1)
return(SMS_INTERNAL);
com_err(whoami, 0, "filesys created on mach %d in %s/%s", m_id,
/* set quota */
## repeat retrieve (quota = values.value) where values.name = "def_quota"
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount != 1)
return(SMS_NO_QUOTA);
## repeat append nfsquota (#users_id = @users_id, filsys_id = values.value,
## modby = @who, modwith = @entity)
## where values.name = "filsys_id"
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount != 1)
return(SMS_INTERNAL);
## repeat replace nfsphys (allocated = nfsphys.allocated + @quota)
## where nfsphys.nfsphys_id = filesys.#phys_id and
## filesys.filsys_id = values.value and values.name = "filsys_id"
## inquire_equel(rowcount = "rowcount");
- if (ingres_errno != 0) return(ingres_errno);
if (rowcount != 1)
return(SMS_INTERNAL);
com_err(whoami, 0, "quota of %d assigned", quota);
## repeat replace tblstats (updates = tblstats.updates + 1, modtime = "now")
## where tblstats.table = "users"
- if (ingres_errno != 0) return(ingres_errno);
## repeat replace tblstats (appends = tblstats.appends + 1, modtime = "now")
## where tblstats.table = "list" or tblstats.table = "filesys" or
## tblstats.table = "nfsquota"
- if (ingres_errno != 0) return(ingres_errno);
return(SMS_SUCCESS);
##}