Import some changes from telnet.95.10.19.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@170 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1555,12 +1555,27 @@ init_env()
|
|||||||
#ifndef NEWINIT
|
#ifndef NEWINIT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* start_login(host)
|
* scrub_env()
|
||||||
*
|
*
|
||||||
* Assuming that we are now running as a child processes, this
|
* Remove a few things from the environment that
|
||||||
* function will turn us into the login process.
|
* don't need to be there.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static void scrub_env(void)
|
||||||
|
{
|
||||||
|
char **cpp, **cpp2;
|
||||||
|
|
||||||
|
for (cpp2 = cpp = environ; *cpp; cpp++) {
|
||||||
|
if (!strncmp(*cpp, "LD_", 3) &&
|
||||||
|
!strncmp(*cpp, "_RLD_", 5) &&
|
||||||
|
!strncmp(*cpp, "LIBPATH=", 8) &&
|
||||||
|
!strncmp(*cpp, "IFS=", 4))
|
||||||
|
*cpp2++ = *cpp;
|
||||||
|
}
|
||||||
|
*cpp2 = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
struct arg_val {
|
struct arg_val {
|
||||||
int size;
|
int size;
|
||||||
int argc;
|
int argc;
|
||||||
@@ -1569,8 +1584,14 @@ struct arg_val {
|
|||||||
|
|
||||||
int addarg(struct arg_val*, char*);
|
int addarg(struct arg_val*, char*);
|
||||||
|
|
||||||
void
|
/*
|
||||||
start_login(host, autologin, name)
|
* start_login(host)
|
||||||
|
*
|
||||||
|
* Assuming that we are now running as a child processes, this
|
||||||
|
* function will turn us into the login process.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void start_login(host, autologin, name)
|
||||||
char *host;
|
char *host;
|
||||||
int autologin;
|
int autologin;
|
||||||
char *name;
|
char *name;
|
||||||
@@ -1612,6 +1633,8 @@ start_login(host, autologin, name)
|
|||||||
fatal(net, "pututxline failed");
|
fatal(net, "pututxline failed");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
scrub_env();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* -h : pass on name of host.
|
* -h : pass on name of host.
|
||||||
* WARNING: -h is accepted by login if and only if
|
* WARNING: -h is accepted by login if and only if
|
||||||
@@ -1853,41 +1876,6 @@ int addarg(struct arg_val *argv, char *val)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* Ick!! */
|
|
||||||
|
|
||||||
char **
|
|
||||||
addarg(argv, val)
|
|
||||||
register char **argv;
|
|
||||||
register char *val;
|
|
||||||
{
|
|
||||||
register char **cpp;
|
|
||||||
|
|
||||||
if (argv == NULL) {
|
|
||||||
/*
|
|
||||||
* 10 entries, a leading length, and a null
|
|
||||||
*/
|
|
||||||
argv = (char **)malloc(sizeof(*argv) * 12);
|
|
||||||
if (argv == NULL)
|
|
||||||
return(NULL);
|
|
||||||
*argv++ = (char *)10;
|
|
||||||
*argv = (char *)0;
|
|
||||||
}
|
|
||||||
for (cpp = argv; *cpp; cpp++)
|
|
||||||
;
|
|
||||||
if (cpp == &argv[(int)argv[-1]]) {
|
|
||||||
--argv;
|
|
||||||
*argv = (char *)((int)(*argv) + 10);
|
|
||||||
argv = (char **)realloc(argv, sizeof(*argv)*((int)(*argv) + 2));
|
|
||||||
if (argv == NULL)
|
|
||||||
return(NULL);
|
|
||||||
argv++;
|
|
||||||
cpp = &argv[(int)argv[-1] - 10];
|
|
||||||
}
|
|
||||||
*cpp++ = val;
|
|
||||||
*cpp = 0;
|
|
||||||
return(argv);
|
|
||||||
}
|
|
||||||
#endif /* 0 */
|
|
||||||
|
|
||||||
#endif /* NEWINIT */
|
#endif /* NEWINIT */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user