From 5b9c68270e4cd9c5f15391f1690bab700d14d3c6 Mon Sep 17 00:00:00 2001 From: brian Date: Thu, 19 Feb 1998 02:10:13 +0000 Subject: MFMP: Allow 8 character login names. Do the login()/logwtmp()/logout() as id 0. --- usr.sbin/ppp/id.c | 47 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 6 deletions(-) (limited to 'usr.sbin/ppp/id.c') diff --git a/usr.sbin/ppp/id.c b/usr.sbin/ppp/id.c index af41207..b6ff63f 100644 --- a/usr.sbin/ppp/id.c +++ b/usr.sbin/ppp/id.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: id.c,v 1.5 1997/12/27 19:23:12 brian Exp $ + * $Id: id.c,v 1.6 1998/01/21 02:15:16 brian Exp $ */ #include @@ -32,18 +32,20 @@ #include #include #include +#include #include #include - -#include "command.h" -#include "mbuf.h" -#include "log.h" -#include "main.h" #ifdef __OpenBSD__ #include #else #include #endif +#include + +#include "command.h" +#include "mbuf.h" +#include "log.h" +#include "main.h" #include "id.h" static int uid; @@ -175,3 +177,36 @@ ID0uu_unlock(const char *basettyname) ID0setuser(); return ret; } + +void +ID0login(struct utmp *ut) +{ + ID0set0(); + if (logout(ut->ut_line)) { + LogPrintf(LogID0, "logout(\"%s\")\n", ut->ut_line); + logwtmp(ut->ut_line, "", ""); + LogPrintf(LogID0, "logwtmp(\"%s\", \"\", \"\")\n", ut->ut_line); + } + login(ut); + LogPrintf(LogID0, "login(\"%s\", \"%.*s\")\n", + ut->ut_line, sizeof ut->ut_name, ut->ut_name); + ID0setuser(); +} + +void +ID0logout(const char *device) +{ + struct utmp ut; + + strncpy(ut.ut_line, device, sizeof ut.ut_line - 1); + ut.ut_line[sizeof ut.ut_line - 1] = '\0'; + + ID0set0(); + if (logout(ut.ut_line)) { + LogPrintf(LogID0, "logout(\"%s\")\n", ut.ut_line); + logwtmp(ut.ut_line, "", ""); + LogPrintf(LogID0, "logwtmp(\"%s\", \"\", \"\")\n", ut.ut_line); + } else + LogPrintf(LogERROR, "ID0logout: No longer logged in on %s\n", ut.ut_line); + ID0setuser(); +} -- cgit v1.1