static stolower();
extern int IDCmp();
+extern int prp_group_default;
+extern int prp_user_default;
+
/* When abort, reset initd so that the header is read in on next call.
* Abort the transaction and return the code.
*/
aentry->flags = tentry.flags >> PRIVATE_SHIFT;
if (aentry->flags == 0) {
if (tentry.flags & PRGRP)
- aentry->flags = PRP_GROUP_DEFAULT >> PRIVATE_SHIFT;
+ aentry->flags = prp_group_default >> PRIVATE_SHIFT;
else
- aentry->flags = PRP_USER_DEFAULT >> PRIVATE_SHIFT;
+ aentry->flags = prp_user_default >> PRIVATE_SHIFT;
}
aentry->owner = tentry.owner;
aentry->id = tentry.id;
if (entry->flags == 0) {
entry->flags =
((tentry->
- flags & PRGRP) ? PRP_GROUP_DEFAULT : PRP_USER_DEFAULT) >>
+ flags & PRGRP) ? prp_group_default : prp_user_default) >>
PRIVATE_SHIFT;
}
entry->owner = tentry->owner;
static struct afsconf_cell info;
+extern int prp_group_default;
+extern int prp_user_default;
+
#include "AFS_component_version_number.c"
+int
+prp_access_mask(s)
+ char *s;
+{
+ int r;
+ if (*s >= '0' && *s <= '9') {
+ return strtol(s, NULL, 0);
+ }
+ r = 0;
+ while (*s) switch(*s++)
+ {
+ case 'S': r |= PRP_STATUS_ANY; break;
+ case 's': r |= PRP_STATUS_MEM; break;
+ case 'O': r |= PRP_OWNED_ANY; break;
+ case 'M': r |= PRP_MEMBER_ANY; break;
+ case 'm': r |= PRP_MEMBER_MEM; break;
+ case 'A': r |= PRP_ADD_ANY; break;
+ case 'a': r |= PRP_ADD_MEM; break;
+ case 'r': r |= PRP_REMOVE_MEM; break;
+ }
+ return r;
+}
+
/* check whether caller is authorized to manage RX statistics */
int
pr_rxstat_userok(call)
depthsg = atoi(argv[++a]); /* Max search depth for supergroups */
}
#endif
+ else if (strncmp(arg, "-default_access", alen) == 0) {
+ prp_user_default = prp_access_mask(argv[++a]);
+ prp_group_default = prp_access_mask(argv[++a]);
+ }
else if (strncmp(arg, "-enable_peer_stats", alen) == 0) {
rx_enablePeerRPCStats();
} else if (strncmp(arg, "-enable_process_stats", alen) == 0) {
"[-p <number of processes>] [-rebuild] "
"[-groupdepth <depth>] "
"[-enable_peer_stats] [-enable_process_stats] "
+ "[-default_access default_user_access default_group_access] "
"[-help]\n");
#else /* AFS_NT40_ENV */
printf("Usage: ptserver [-database <db path>] "
"[-p <number of processes>] [-rebuild] "
+ "[-default_access default_user_access default_group_access] "
"[-groupdepth <depth>] " "[-help]\n");
#endif
#else
"[-syslog[=FACILITY]] "
"[-p <number of processes>] [-rebuild] "
"[-enable_peer_stats] [-enable_process_stats] "
+ "[-default_access default_user_access default_group_access] "
"[-help]\n");
#else /* AFS_NT40_ENV */
printf("Usage: ptserver [-database <db path>] "
+ "[-default_access default_user_access default_group_access] "
"[-p <number of processes>] [-rebuild] " "[-help]\n");
#endif
#endif
extern afs_int32 AddToEntry();
static char *whoami = "ptserver";
+
#if defined(SUPERGROUPS)
#include "map.h"
struct map *sg_flagged;
struct map *sg_found;
+int prp_user_default = PRP_USER_DEFAULT;
+int prp_group_default = PRP_GROUP_DEFAULT;
#define NIL_MAP ((struct map *) 0)
}
if (!(flags & PRACCESS)) { /* provide default access */
if (flags & PRGRP)
- flags |= PRP_GROUP_DEFAULT;
+ flags |= prp_group_default;
else
- flags |= PRP_USER_DEFAULT;
+ flags |= prp_user_default;
}
if (flags & any)