#include <stdio.h>
#include <sys/types.h>
#include <sys/file.h>
-#include <strings.h>
+#include <string.h>
+#include <unistd.h>
#include <krb.h>
#include <moira.h>
#define STOP_FILE "/moira/afs/noafs"
#define file_exists(file) (access((file), F_OK) == 0)
-#if defined(vax) && !defined(__STDC__)
-#define volatile
-#endif
-
char *whoami;
/* Main stub routines */
int add_list_members();
int check_user();
int edit_group();
-int pr_try();
+long pr_try();
int check_afs();
/* libprot.a routines */
for (i = getdtablesize() - 1; i > 2; i--)
close(i);
- whoami = ((whoami = rindex(argv[0], '/')) ? whoami++ : argv[0]);
+ whoami = ((whoami = strrchr(argv[0], '/')) ? whoami+1 : argv[0]);
table = argv[1];
beforec = atoi(argv[2]);
afterc = atoi(argv[3]);
after = &argv[4 + beforec];
- setlinebuf(stdout);
+ setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
strcpy(tbl_buf, table);
strcat(tbl_buf, " (");
do_user(before, beforec, after, afterc);
} else if (!strcmp(table, "list")) {
do_list(before, beforec, after, afterc);
- } else if (!strcmp(table, "members")) {
+ } else if (!strcmp(table, "imembers")) {
do_member(before, beforec, after, afterc);
} else if (!strcmp(table, "filesys")) {
do_filesys(before, beforec, after, afterc);
if (afterc) {
if (afterc < LM_EXTRA_END) {
return;
- } else if (afterc < LM_EXTRA_END) {
- if (!atoi(after[LM_EXTRA_GROUP])) return;
} else
- if (!atoi(after[LM_EXTRA_ACTIVE]) && !atoi(after[LM_EXTRA_GROUP]))
+ if (!atoi(after[LM_EXTRA_ACTIVE]) || !atoi(after[LM_EXTRA_GROUP]))
return;
edit_group(1, after[LM_LIST], after[LM_TYPE], after[LM_MEMBER]);
} else if (beforec) {
if (beforec < LM_EXTRA_END) {
return;
- } else if (beforec < LM_EXTRA_END) {
- if (!atoi(before[LM_EXTRA_GROUP])) return;
} else
- if (!atoi(before[LM_EXTRA_ACTIVE]) && !atoi(before[LM_EXTRA_GROUP]))
+ if (!atoi(before[LM_EXTRA_ACTIVE]) || !atoi(before[LM_EXTRA_GROUP]))
return;
edit_group(0, before[LM_LIST], before[LM_TYPE], before[LM_MEMBER]);
}
int afterc;
{
char cmd[1024];
- int acreate, atype, btype;
+ int acreate, atype, bcreate, btype;
if (afterc < FS_CREATE) {
atype = acreate = 0;
}
btype = !strcmp(before[FS_TYPE], "AFS");
+ bcreate = atoi(before[FS_CREATE]);
if (afterc < FS_CREATE) {
- if (btype)
+ if (btype && bcreate)
critical_alert("incremental",
"Cannot delete AFS filesystem %s: Operation not supported",
before[FS_NAME]);
if (!local_realm[0])
krb_get_lrealm(local_realm, 1);
if (!strcmp(type, "KERBEROS")) {
- p = index(member, '@');
+ p = strchr(member, '@');
if (p && !strcasecmp(p+1, local_realm))
*p = 0;
} else if (strcmp(type, "USER"))
char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
{
static int initd=0;
- volatile register long code;
+ register long code;
register int tries = 0;
#ifdef DEBUG
char fname[64];
long code;
if (!mr_connections++) {
-#ifdef DEBUG
- code = mr_connect("moira");
-#else
gethostname(hostname, sizeof(hostname));
code = mr_connect(hostname);
-#endif
if (!code) code = mr_auth("afs.incr");
return code;
}