Fixed bug with systems lacking logwtmp.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@563 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1894,36 +1894,13 @@ rmut (char *line)
|
|||||||
* clean up anything that needs to be cleaned up.
|
* clean up anything that needs to be cleaned up.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef PARENT_DOES_UTMP
|
||||||
|
|
||||||
void
|
void
|
||||||
cleanup(int sig)
|
cleanup(int sig)
|
||||||
{
|
{
|
||||||
#ifndef PARENT_DOES_UTMP
|
|
||||||
#ifndef HAVE_UTMPX_H
|
|
||||||
/* # if (BSD > 43) || defined(convex) */
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
p = line + sizeof("/dev/") - 1;
|
|
||||||
if (logout(p))
|
|
||||||
logwtmp(p, "", "");
|
|
||||||
(void)chmod(line, 0666);
|
|
||||||
(void)chown(line, 0, 0);
|
|
||||||
*p = 'p';
|
|
||||||
(void)chmod(line, 0666);
|
|
||||||
(void)chown(line, 0, 0);
|
|
||||||
(void) shutdown(net, 2);
|
|
||||||
exit(1);
|
|
||||||
# else
|
|
||||||
rmut();
|
|
||||||
#ifdef HAVE_VHANGUP
|
|
||||||
vhangup(); /* XXX */
|
|
||||||
#else
|
|
||||||
#endif
|
|
||||||
(void) shutdown(net, 2);
|
|
||||||
exit(1);
|
|
||||||
# endif
|
|
||||||
#else /* PARENT_DOES_UTMP */
|
|
||||||
# ifdef NEWINIT
|
# ifdef NEWINIT
|
||||||
(void) shutdown(net, 2);
|
shutdown(net, 2);
|
||||||
exit(1);
|
exit(1);
|
||||||
# else /* NEWINIT */
|
# else /* NEWINIT */
|
||||||
# ifdef CRAY
|
# ifdef CRAY
|
||||||
@@ -1983,9 +1960,38 @@ cleanup(int sig)
|
|||||||
# endif /* CRAY */
|
# endif /* CRAY */
|
||||||
exit(1);
|
exit(1);
|
||||||
# endif /* NEWINT */
|
# endif /* NEWINT */
|
||||||
#endif /* PARENT_DOES_UTMP */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else /* PARENT_DOES_UTMP */
|
||||||
|
|
||||||
|
extern void rmut(void);
|
||||||
|
|
||||||
|
void
|
||||||
|
cleanup(int sig)
|
||||||
|
{
|
||||||
|
#if defined(HAVE_UTMPX_H) || !defined(HAVE_LOGWTMP)
|
||||||
|
rmut();
|
||||||
|
#ifdef HAVE_VHANGUP
|
||||||
|
vhangup(); /* XXX */
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
p = line + sizeof("/dev/") - 1;
|
||||||
|
if (logout(p))
|
||||||
|
logwtmp(p, "", "");
|
||||||
|
chmod(line, 0666);
|
||||||
|
chown(line, 0, 0);
|
||||||
|
*p = 'p';
|
||||||
|
chmod(line, 0666);
|
||||||
|
chown(line, 0, 0);
|
||||||
|
#endif
|
||||||
|
shutdown(net, 2);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* PARENT_DOES_UTMP */
|
||||||
|
|
||||||
#if defined(PARENT_DOES_UTMP) && !defined(NEWINIT)
|
#if defined(PARENT_DOES_UTMP) && !defined(NEWINIT)
|
||||||
/*
|
/*
|
||||||
* _utmp_sig_rcv
|
* _utmp_sig_rcv
|
||||||
|
Reference in New Issue
Block a user