From: mar Date: Fri, 28 Oct 1988 15:30:56 +0000 (+0000) Subject: fix extraction of recursive members of specific credentials lists X-Git-Tag: KREL1~91 X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/commitdiff_plain/de6a5fe1fa4ccdddaa80f8376c668f183e3844b9 fix extraction of recursive members of specific credentials lists --- diff --git a/gen/nfs.qc b/gen/nfs.qc index d071e08c..914f51e1 100644 --- a/gen/nfs.qc +++ b/gen/nfs.qc @@ -130,7 +130,7 @@ int do_nfs() int do_lists(lists) struct save_queue *lists; ##{ - struct save_queue *sq; + struct save_queue *sq, *members; char file[64], *u; struct hash *users, *do_everyone(); struct stat sb; @@ -177,19 +177,24 @@ struct save_queue *lists; } sq = sq_create(); sq_save_data(sq, listname); + members = sq_create(); while (sq_get_data(sq, &lsname)) { ## repeat retrieve (lname = trim(l.name)) ## where m.list_id = l1.list_id and l1.name = @lsname and ## m.member_type = "LIST" and m.member_id = l.list_id { - sq_save_unique_string(sq, lname); + sq_save_unique_string(sq, strsave(lname)); ## } ## repeat retrieve (id = m.member_id) ## where m.list_id = l1.list_id and l1.name = @lsname and ## m.member_type = "USER" { - if (u = hash_lookup(users, id)) - fprintf(fd, "%s\n", u); + if (u = hash_lookup(users, id)) { + sq_save_unique_data(members, u); + } ## } } + while (sq_get_data(members, &lsname)) + fprintf(fd, "%s\n", lsname); + sq_destroy(members); sq_destroy(sq); if (fclose(fd)) { fprintf(stderr, "error closing %s\n", file);