From bjaspan@MIT.EDU Tue Nov 19 13:24:01 1996
Received: from MIT.EDU (SOUTH-STATION-ANNEX.MIT.EDU [18.72.1.2]) by rt-11.MIT.EDU (8.7.5/8.7.3) with SMTP id NAA18596 for <bugs@RT-11.MIT.EDU>; Tue, 19 Nov 1996 13:24:00 -0500
Received: from BEEBLEBROX.MIT.EDU by MIT.EDU with SMTP
id AA10983; Tue, 19 Nov 96 13:23:59 EST
Received: by beeblebrox.MIT.EDU (940816.SGI.8.6.9/4.7) id SAA12844; Tue, 19 Nov 1996 18:24:00 GMT
Message-Id: <199611191824.SAA12844@beeblebrox.MIT.EDU>
Date: Tue, 19 Nov 1996 18:24:00 GMT
From: bjaspan@MIT.EDU
Reply-To: bjaspan@MIT.EDU
To: krb5-bugs@MIT.EDU
Subject: patches for kadmin forprinc and forpol commands
X-Send-Pr-Version: 3.99
System: IRIX beeblebrox 5.3 11091812 IP22 mips
Here are patches to implement a "for_principal" and "for_policy"
command in kadmin. This is clearly a feature and so will go in
post-1.0, possibly after some more design discussion. I'm saving the
patches here so that I can remove them from my working directory.
Index: kadmin.c
===================================================================
RCS file: /mit/krbdev/.cvsroot/src/kadmin/cli/kadmin.c,v
retrieving revision 1.38
diff -c -r1.38 kadmin.c
*** kadmin.c 1996/11/13 21:04:44 1.38
--- kadmin.c 1996/11/14 17:01:56
***************
*** 446,451 ****
--- 446,580 ----
return 0;
}
+ void kadmin_foreach_princ(argc, argv)
+ int argc;
+ char *argv[];
+ {
+ char *glob, **princs, **argv0;
+ int i, num, max, code;
+ extern int sci_idx;
+
+ #undef USAGE
+ #define USAGE { \
+ fprintf(stderr, "Usage: foreach_principal [-max max] glob command\n");\
+ return; }
+
+ if (argc < 3) USAGE;
+
+ max = 20;
+ argv0 = argv;
+
+ argv++; argc--;
+ while (*argv) {
+ if (strcmp(*argv, "-max") == 0) {
+ argv++; argc--;
+ if (!argc) USAGE;
+ max = atoi(*argv);
+ } else
+ break;
+ argv++; argc--;
+ }
+
+ glob = argv[0];
+ argv++; argc--;
+
+ if (code = kadm5_get_principals(handle, glob, &princs, &num)) {
+ com_err(whoami, code,
+ "while listing principals matching expression \"%s\".",
+ *argv);
+ return;
+ }
+
+ if (num > max) {
+ fprintf(stderr, "Expression \"%s\" matches "
+ "%d principals, maximum is %d (use -max to override).\n",
+ glob, num, max);
+ goto done;
+ }
+
+ for (i = 0; i < argc; i++)
+ argv0[i] = argv[i];
+ argv0[argc+1] = NULL;
+
+ for (i = 0; i < num; i++) {
+ argv0[argc] = princs[i];
+
+ code = ss_execute_command(sci_idx, argv0);
+ if (code != 0) {
+ ss_perror(sci_idx, code, argv0[0]);
+ goto done;
+ }
+ }
+
+ done:
+ kadm5_free_name_list(handle, princs, num);
+ }
+
+ void kadmin_foreach_pol(argc, argv)
+ int argc;
+ char *argv[];
+ {
+ char *glob, **pols, **argv0;
+ int i, num, max, code;
+ extern int sci_idx;
+
+ #undef USAGE
+ #define USAGE { \
+ fprintf(stderr, "Usage: foreach_policy [-max max] glob command\n");\
+ return; }
+
+ if (argc < 3) USAGE;
+
+ max = 20;
+ argv0 = argv;
+
+ argv++; argc--;
+ while (*argv) {
+ if (strcmp(*argv, "-max") == 0) {
+ argv++; argc--;
+ if (!argc) USAGE;
+ max = atoi(*argv);
+ } else
+ break;
+ argv++; argc--;
+ }
+
+ glob = argv[0];
+ argv++; argc--;
+
+ if (code = kadm5_get_policies(handle, glob, &pols, &num)) {
+ com_err(whoami, code,
+ "while listing policies matching expression \"%s\".",
+ *argv);
+ return;
+ }
+
+ if (num > max) {
+ fprintf(stderr, "Expression \"%s\" matches "
+ "%d policies, maximum is %d (use -max to override).\n",
+ glob, num, max);
+ goto done;
+ }
+
+ for (i = 0; i < argc; i++)
+ argv0[i] = argv[i];
+ argv0[argc+1] = NULL;
+
+ for (i = 0; i < num; i++) {
+ argv0[argc] = pols[i];
+
+ code = ss_execute_command(sci_idx, argv0);
+ if (code != 0) {
+ ss_perror(sci_idx, code, argv0[0]);
+ goto done;
+ }
+ }
+
+ done:
+ kadm5_free_name_list(handle, pols, num);
+ }
+
+
void kadmin_delprinc(argc, argv)
int argc;
char *argv[];
Index: kadmin_ct.ct
===================================================================
RCS file: /mit/krbdev/.cvsroot/src/kadmin/cli/kadmin_ct.ct,v
retrieving revision 1.7
diff -c -r1.7 kadmin_ct.ct
*** kadmin_ct.ct 1996/08/12 15:48:12 1.7
--- kadmin_ct.ct 1996/11/07 20:35:50
***************
*** 65,70 ****
--- 65,76 ----
request kadmin_keytab_remove, "Remove entry(s) from a keytab",
ktremove, ktrem;
+ request kadmin_foreach_princ, "Iterate any command over multiple principals",
+ foreach_principal, forprinc;
+
+ request kadmin_foreach_pol, "Iterate any command over multiple policies",
+ foreach_policy, forpol;
+
# list_requests is generic -- unrelated to Kerberos
request ss_list_requests, "List available requests.",
list_requests, lr, "?";
Index: ss_wrapper.c
===================================================================
RCS file: /mit/krbdev/.cvsroot/src/kadmin/cli/ss_wrapper.c,v
retrieving revision 1.6
diff -c -r1.6 ss_wrapper.c
*** ss_wrapper.c 1996/07/22 20:23:18 1.6
--- ss_wrapper.c 1996/11/07 21:04:24
***************
*** 32,44 ****
extern char *kadmin_startup();
extern char *whoami;
int main(argc, argv)
int argc;
char *argv[];
{
char *request;
krb5_error_code retval;
! int sci_idx, code = 0;
whoami = ((whoami = strrchr(argv[0], '/')) ? whoami+1 : argv[0]);
--- 32,46 ----
extern char *kadmin_startup();
extern char *whoami;
+ int sci_idx; /* need by kadmin.c */
+
int main(argc, argv)
int argc;
char *argv[];
{
char *request;
krb5_error_code retval;
! int code = 0;
whoami = ((whoami = strrchr(argv[0], '/')) ? whoami+1 : argv[0]);
From: Tom Yu <tlyu@MIT.EDU>
To: Barry Jaspan <bjaspan@MIT.EDU>
Cc: krb5-bugs@MIT.EDU
Subject: Re: krb5-admin/205: patches for kadmin forprinc and forpol commands
Date: Fri, 29 Aug 1997 16:53:41 -0400
`Tom Yu' made changes to this PR.
--- /tmp/gnatsa002Z8 Fri Aug 29 16:53:09 1997
+++ /tmp/gnatsb002Z8 Fri Aug 29 16:53:31 1997
@@ -15,7 +15,7 @@
+>Severity: non-critical
downgrade
Responsible-Changed-From-To: bjaspan->krb5-unassigned
Responsible-Changed-By: mdh
Responsible-Changed-When: Wed Jun 24 18:07:02 1998
Responsible-Changed-Why:
bjaspan no longer works with the kerberos team
Received: from MIT.EDU (SOUTH-STATION-ANNEX.MIT.EDU [18.72.1.2]) by rt-11.MIT.EDU (8.7.5/8.7.3) with SMTP id NAA18596 for <bugs@RT-11.MIT.EDU>; Tue, 19 Nov 1996 13:24:00 -0500
Received: from BEEBLEBROX.MIT.EDU by MIT.EDU with SMTP
id AA10983; Tue, 19 Nov 96 13:23:59 EST
Received: by beeblebrox.MIT.EDU (940816.SGI.8.6.9/4.7) id SAA12844; Tue, 19 Nov 1996 18:24:00 GMT
Message-Id: <199611191824.SAA12844@beeblebrox.MIT.EDU>
Date: Tue, 19 Nov 1996 18:24:00 GMT
From: bjaspan@MIT.EDU
Reply-To: bjaspan@MIT.EDU
To: krb5-bugs@MIT.EDU
Subject: patches for kadmin forprinc and forpol commands
X-Send-Pr-Version: 3.99
Show quoted text
>Number: 205
>Category: krb5-admin
>Synopsis: patches for kadmin forprinc and forpol commands
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: krb5-unassigned
>State: open
>Class: change-request
>Submitter-Id: unknown
>Arrival-Date: Tue Nov 19 13:25:01 EST 1996
>Last-Modified: Wed Jun 24 18:07:20 EDT 1998
>Originator: Barry Jaspan
>Organization:
mit>Category: krb5-admin
>Synopsis: patches for kadmin forprinc and forpol commands
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: krb5-unassigned
>State: open
>Class: change-request
>Submitter-Id: unknown
>Arrival-Date: Tue Nov 19 13:25:01 EST 1996
>Last-Modified: Wed Jun 24 18:07:20 EDT 1998
>Originator: Barry Jaspan
>Organization:
Show quoted text
>Release: 1.0-development
>Environment:
>Environment:
System: IRIX beeblebrox 5.3 11091812 IP22 mips
Show quoted text
>Description:
Here are patches to implement a "for_principal" and "for_policy"
command in kadmin. This is clearly a feature and so will go in
post-1.0, possibly after some more design discussion. I'm saving the
patches here so that I can remove them from my working directory.
Index: kadmin.c
===================================================================
RCS file: /mit/krbdev/.cvsroot/src/kadmin/cli/kadmin.c,v
retrieving revision 1.38
diff -c -r1.38 kadmin.c
*** kadmin.c 1996/11/13 21:04:44 1.38
--- kadmin.c 1996/11/14 17:01:56
***************
*** 446,451 ****
--- 446,580 ----
return 0;
}
+ void kadmin_foreach_princ(argc, argv)
+ int argc;
+ char *argv[];
+ {
+ char *glob, **princs, **argv0;
+ int i, num, max, code;
+ extern int sci_idx;
+
+ #undef USAGE
+ #define USAGE { \
+ fprintf(stderr, "Usage: foreach_principal [-max max] glob command\n");\
+ return; }
+
+ if (argc < 3) USAGE;
+
+ max = 20;
+ argv0 = argv;
+
+ argv++; argc--;
+ while (*argv) {
+ if (strcmp(*argv, "-max") == 0) {
+ argv++; argc--;
+ if (!argc) USAGE;
+ max = atoi(*argv);
+ } else
+ break;
+ argv++; argc--;
+ }
+
+ glob = argv[0];
+ argv++; argc--;
+
+ if (code = kadm5_get_principals(handle, glob, &princs, &num)) {
+ com_err(whoami, code,
+ "while listing principals matching expression \"%s\".",
+ *argv);
+ return;
+ }
+
+ if (num > max) {
+ fprintf(stderr, "Expression \"%s\" matches "
+ "%d principals, maximum is %d (use -max to override).\n",
+ glob, num, max);
+ goto done;
+ }
+
+ for (i = 0; i < argc; i++)
+ argv0[i] = argv[i];
+ argv0[argc+1] = NULL;
+
+ for (i = 0; i < num; i++) {
+ argv0[argc] = princs[i];
+
+ code = ss_execute_command(sci_idx, argv0);
+ if (code != 0) {
+ ss_perror(sci_idx, code, argv0[0]);
+ goto done;
+ }
+ }
+
+ done:
+ kadm5_free_name_list(handle, princs, num);
+ }
+
+ void kadmin_foreach_pol(argc, argv)
+ int argc;
+ char *argv[];
+ {
+ char *glob, **pols, **argv0;
+ int i, num, max, code;
+ extern int sci_idx;
+
+ #undef USAGE
+ #define USAGE { \
+ fprintf(stderr, "Usage: foreach_policy [-max max] glob command\n");\
+ return; }
+
+ if (argc < 3) USAGE;
+
+ max = 20;
+ argv0 = argv;
+
+ argv++; argc--;
+ while (*argv) {
+ if (strcmp(*argv, "-max") == 0) {
+ argv++; argc--;
+ if (!argc) USAGE;
+ max = atoi(*argv);
+ } else
+ break;
+ argv++; argc--;
+ }
+
+ glob = argv[0];
+ argv++; argc--;
+
+ if (code = kadm5_get_policies(handle, glob, &pols, &num)) {
+ com_err(whoami, code,
+ "while listing policies matching expression \"%s\".",
+ *argv);
+ return;
+ }
+
+ if (num > max) {
+ fprintf(stderr, "Expression \"%s\" matches "
+ "%d policies, maximum is %d (use -max to override).\n",
+ glob, num, max);
+ goto done;
+ }
+
+ for (i = 0; i < argc; i++)
+ argv0[i] = argv[i];
+ argv0[argc+1] = NULL;
+
+ for (i = 0; i < num; i++) {
+ argv0[argc] = pols[i];
+
+ code = ss_execute_command(sci_idx, argv0);
+ if (code != 0) {
+ ss_perror(sci_idx, code, argv0[0]);
+ goto done;
+ }
+ }
+
+ done:
+ kadm5_free_name_list(handle, pols, num);
+ }
+
+
void kadmin_delprinc(argc, argv)
int argc;
char *argv[];
Index: kadmin_ct.ct
===================================================================
RCS file: /mit/krbdev/.cvsroot/src/kadmin/cli/kadmin_ct.ct,v
retrieving revision 1.7
diff -c -r1.7 kadmin_ct.ct
*** kadmin_ct.ct 1996/08/12 15:48:12 1.7
--- kadmin_ct.ct 1996/11/07 20:35:50
***************
*** 65,70 ****
--- 65,76 ----
request kadmin_keytab_remove, "Remove entry(s) from a keytab",
ktremove, ktrem;
+ request kadmin_foreach_princ, "Iterate any command over multiple principals",
+ foreach_principal, forprinc;
+
+ request kadmin_foreach_pol, "Iterate any command over multiple policies",
+ foreach_policy, forpol;
+
# list_requests is generic -- unrelated to Kerberos
request ss_list_requests, "List available requests.",
list_requests, lr, "?";
Index: ss_wrapper.c
===================================================================
RCS file: /mit/krbdev/.cvsroot/src/kadmin/cli/ss_wrapper.c,v
retrieving revision 1.6
diff -c -r1.6 ss_wrapper.c
*** ss_wrapper.c 1996/07/22 20:23:18 1.6
--- ss_wrapper.c 1996/11/07 21:04:24
***************
*** 32,44 ****
extern char *kadmin_startup();
extern char *whoami;
int main(argc, argv)
int argc;
char *argv[];
{
char *request;
krb5_error_code retval;
! int sci_idx, code = 0;
whoami = ((whoami = strrchr(argv[0], '/')) ? whoami+1 : argv[0]);
--- 32,46 ----
extern char *kadmin_startup();
extern char *whoami;
+ int sci_idx; /* need by kadmin.c */
+
int main(argc, argv)
int argc;
char *argv[];
{
char *request;
krb5_error_code retval;
! int code = 0;
whoami = ((whoami = strrchr(argv[0], '/')) ? whoami+1 : argv[0]);
Show quoted text
>How-To-Repeat:
Show quoted text
>Fix:
Show quoted text
>Audit-Trail:
From: Tom Yu <tlyu@MIT.EDU>
To: Barry Jaspan <bjaspan@MIT.EDU>
Cc: krb5-bugs@MIT.EDU
Subject: Re: krb5-admin/205: patches for kadmin forprinc and forpol commands
Date: Fri, 29 Aug 1997 16:53:41 -0400
`Tom Yu' made changes to this PR.
--- /tmp/gnatsa002Z8 Fri Aug 29 16:53:09 1997
+++ /tmp/gnatsb002Z8 Fri Aug 29 16:53:31 1997
@@ -15,7 +15,7 @@
Show quoted text
>Category: krb5-admin
>Synopsis: patches for kadmin forprinc and forpol commands
>Confidential: no
->Severity: serious>Synopsis: patches for kadmin forprinc and forpol commands
>Confidential: no
+>Severity: non-critical
Show quoted text
>Priority: medium
>Responsible: bjaspan
>State: open
>Responsible: bjaspan
>State: open
downgrade
Responsible-Changed-From-To: bjaspan->krb5-unassigned
Responsible-Changed-By: mdh
Responsible-Changed-When: Wed Jun 24 18:07:02 1998
Responsible-Changed-Why:
bjaspan no longer works with the kerberos team
Show quoted text
>Unformatted: