add command line switch for extra addresses
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10971 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997-2001 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997-2002 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -42,6 +42,7 @@ int validate_flag = 0;
|
|||||||
int version_flag = 0;
|
int version_flag = 0;
|
||||||
int help_flag = 0;
|
int help_flag = 0;
|
||||||
int addrs_flag = 1;
|
int addrs_flag = 1;
|
||||||
|
struct getarg_strings extra_addresses;
|
||||||
int anonymous_flag = 0;
|
int anonymous_flag = 0;
|
||||||
char *lifetime = NULL;
|
char *lifetime = NULL;
|
||||||
char *renew_life = NULL;
|
char *renew_life = NULL;
|
||||||
@@ -114,6 +115,9 @@ static struct getargs args[] = {
|
|||||||
{ "addresses", 0, arg_negative_flag, &addrs_flag,
|
{ "addresses", 0, arg_negative_flag, &addrs_flag,
|
||||||
"request a ticket with no addresses" },
|
"request a ticket with no addresses" },
|
||||||
|
|
||||||
|
{ "extra-addresses",'a', arg_strings, &extra_addresses,
|
||||||
|
"include these extra addresses", "addresses" },
|
||||||
|
|
||||||
{ "anonymous", 0, arg_flag, &anonymous_flag,
|
{ "anonymous", 0, arg_flag, &anonymous_flag,
|
||||||
"request an anonymous ticket" },
|
"request an anonymous ticket" },
|
||||||
|
|
||||||
@@ -628,6 +632,24 @@ main (int argc, char **argv)
|
|||||||
"afslog", TRUE, &do_afslog);
|
"afslog", TRUE, &do_afslog);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if(!addrs_flag && extra_addresses.num_strings > 0)
|
||||||
|
krb5_errx(context, 1, "specifying both extra addresses and "
|
||||||
|
"no addresses makes no sense");
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
krb5_addresses addresses;
|
||||||
|
memset(&addresses, 0, sizeof(addresses));
|
||||||
|
for(i = 0; i < extra_addresses.num_strings; i++) {
|
||||||
|
ret = krb5_parse_address(context, extra_addresses.strings[i],
|
||||||
|
&addresses);
|
||||||
|
if (ret == 0) {
|
||||||
|
krb5_add_extra_addresses(context, &addresses);
|
||||||
|
krb5_free_addresses(context, &addresses);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
free_getarg_strings(&extra_addresses);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(renew_flag || validate_flag) {
|
if(renew_flag || validate_flag) {
|
||||||
ret = renew_validate(context, renew_flag, validate_flag,
|
ret = renew_validate(context, renew_flag, validate_flag,
|
||||||
|
Reference in New Issue
Block a user