add regpag support. From Miroslav Ruda <ruda@ics.muni.cz>
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6707 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -40,17 +40,20 @@
|
|||||||
RCSID("$Id$");
|
RCSID("$Id$");
|
||||||
|
|
||||||
krb5_context context;
|
krb5_context context;
|
||||||
|
char krb5_tkfile[MAXPATHLEN];
|
||||||
|
|
||||||
static int help_flag;
|
static int help_flag;
|
||||||
static int version_flag;
|
static int version_flag;
|
||||||
static char *port_str;
|
static char *port_str;
|
||||||
char *service = SERVICE;
|
char *service = SERVICE;
|
||||||
int do_inetd = 0;
|
int do_inetd = 0;
|
||||||
|
static char *regpag_str=NULL;
|
||||||
|
|
||||||
static struct getargs args[] = {
|
static struct getargs args[] = {
|
||||||
{ "port", 'p', arg_string, &port_str, "port to listen to", "port" },
|
{ "port", 'p', arg_string, &port_str, "port to listen to", "port" },
|
||||||
{ "inetd",'i',arg_flag, &do_inetd,
|
{ "inetd",'i',arg_flag, &do_inetd,
|
||||||
"Not started from inetd", NULL },
|
"Not started from inetd", NULL },
|
||||||
|
{ "regpag",'R',arg_string,®pag_str,"path to regpag binary","regpag"},
|
||||||
{ "help", 'h', arg_flag, &help_flag },
|
{ "help", 'h', arg_flag, &help_flag },
|
||||||
{ "version", 0, arg_flag, &version_flag }
|
{ "version", 0, arg_flag, &version_flag }
|
||||||
};
|
};
|
||||||
@@ -286,11 +289,12 @@ proto (int sock, const char *service)
|
|||||||
status = krb5_rd_cred (context, auth_context, ccache, &data);
|
status = krb5_rd_cred (context, auth_context, ccache, &data);
|
||||||
krb5_cc_close (context, ccache);
|
krb5_cc_close (context, ccache);
|
||||||
if (status) {
|
if (status) {
|
||||||
syslog_and_cont("krb5_cc_initialize: %s",
|
syslog_and_cont("krb5_rd_cred: %s",
|
||||||
krb5_get_err_text(context, status));
|
krb5_get_err_text(context, status));
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
strcpy_truncate(krb5_tkfile,ccname,sizeof(krb5_tkfile));
|
||||||
syslog_and_cont("%s forwarded ticket to %s,%s",
|
syslog_and_cont("%s forwarded ticket to %s,%s",
|
||||||
name,
|
name,
|
||||||
(char *)(remotename.data),ccname);
|
(char *)(remotename.data),ccname);
|
||||||
@@ -314,7 +318,7 @@ out:
|
|||||||
return 1;
|
return 1;
|
||||||
if (krb5_net_write (context, &sock, ret_string, len) != len)
|
if (krb5_net_write (context, &sock, ret_string, len) != len)
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -336,5 +340,7 @@ main(int argc, char **argv)
|
|||||||
port = server_setup(&context, argc, argv);
|
port = server_setup(&context, argc, argv);
|
||||||
ret = doit (port, service);
|
ret = doit (port, service);
|
||||||
closelog();
|
closelog();
|
||||||
|
if (ret == 0 && regpag_str != NULL)
|
||||||
|
ret = execl(regpag_str, "regpag", "-t", krb5_tkfile, "-r", NULL);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user