If no cells or files specified, get tokens for all local cells. Better

test for files.


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3086 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1997-08-23 16:14:51 +00:00
parent c9f00ce408
commit e93a0b4bc6

View File

@@ -94,7 +94,7 @@ createuser (char *cell)
void void
usage(int ecode) usage(int ecode)
{ {
arg_printusage(args, num_args, ""); arg_printusage(args, num_args, "[cell]... [path]...");
exit(ecode); exit(ecode);
} }
@@ -136,12 +136,14 @@ int main(int argc, char **argv)
krb5_ccache id; krb5_ccache id;
char cellbuf[64]; char cellbuf[64];
int i; int i;
int num;
set_progname(argv[0]); set_progname(argv[0]);
krb5_init_context(&context); krb5_init_context(&context);
if(!k_hasafs()) if(!k_hasafs())
krb5_errx(context, 1, "No AFS!"); krb5_errx(context, 1,
"AFS doesn't seem to be present on this machine");
if(getarg(args, num_args, argc, argv, &optind)) if(getarg(args, num_args, argc, argv, &optind))
usage(1); usage(1);
if(help_flag) if(help_flag)
@@ -153,16 +155,25 @@ int main(int argc, char **argv)
exit(0); exit(0);
} }
krb5_cc_default(context, &id); krb5_cc_default(context, &id);
for(i = 0; i < files.num_strings; i++) num = 0;
for(i = 0; i < files.num_strings; i++){
afslog_file(context, id, files.strings[i]); afslog_file(context, id, files.strings[i]);
for(i = 0; i < cells.num_strings; i++) num++;
}
for(i = 0; i < cells.num_strings; i++){
afslog_cell(context, id, cells.strings[i], 1); afslog_cell(context, id, cells.strings[i], 1);
num++;
}
for(i = optind; i < argc; i++){ for(i = optind; i < argc; i++){
num++;
if(strcmp(argv[i], ".") == 0 || if(strcmp(argv[i], ".") == 0 ||
strcmp(argv[i], "..") == 0 || strcmp(argv[i], "..") == 0 ||
strchr(argv[i], '/')) strchr(argv[i], '/') ||
access(argv[i], F_OK) == 0)
afslog_file(context, id, argv[i]); afslog_file(context, id, argv[i]);
else else
afslog_cell(context, id, argv[i], 1); afslog_cell(context, id, argv[i], 1);
} }
if(num == 0)
k5_afsklog(context, id, NULL, NULL);
} }