The Samba-Bugzilla – Attachment 1273 Details for
Bug 2798
utmp support for *BSD systems
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
support for utmp on bsd systems
smbutmp (text/plain), 1.57 KB, created by
mickey (dead mail address)
on 2005-06-14 10:49:53 UTC
(
hide
)
Description:
support for utmp on bsd systems
Filename:
MIME Type:
Creator:
mickey (dead mail address)
Created:
2005-06-14 10:49:53 UTC
Size:
1.57 KB
patch
obsolete
>--- utmp.c Thu Aug 12 14:24:20 2004 >+++ /home/mickey/utmp.c Wed Mar 30 15:51:40 2005 >@@ -261,6 +261,7 @@ > } > > #ifndef HAVE_PUTUTLINE >+#include <ttyent.h> > > /**************************************************************************** > Update utmp file directly. No subroutine interface: probably a BSD system. >@@ -268,8 +269,50 @@ > > static void pututline_my(pstring uname, struct utmp *u, BOOL claim) > { >- DEBUG(1,("pututline_my: not yet implemented\n")); >- /* BSD implementor: may want to consider (or not) adjusting "lastlog" */ >+ int fd, topslot; >+ struct utmp ubuf; >+ >+ if ((fd = open(uname, O_RDWR, 0)) < 0) >+ return; >+ >+ if (!setttyent()) >+ return; >+ >+ for (topslot = 0; getttyent() != (struct ttyent *)NULL; ) >+ topslot++; >+ >+ if (!endttyent()) >+ return; >+ >+ (void) lseek(fd, (off_t)(topslot * sizeof(struct utmp)), SEEK_SET); >+ >+ DEBUG(1,("pututline(%s, %s, %d); topslot=%d\n", >+ u->ut_line, u->ut_name, claim, topslot)); >+ >+ while (1) { >+ if (read(fd, &ubuf, sizeof(ubuf)) == sizeof(ubuf)) { >+ if ((claim && !ubuf.ut_name[0]) || >+ (!claim && ubuf.ut_name[0] && >+ !strncmp(ubuf.ut_line, u->ut_line, UT_LINESIZE))) { >+ (void) lseek(fd, -(off_t)sizeof(struct utmp), >+ SEEK_CUR); >+ break; >+ } >+ topslot++; >+ } else { >+ (void) lseek(fd, (off_t)(topslot * >+ sizeof(struct utmp)), SEEK_SET); >+ break; >+ } >+ } >+ >+ if (! claim) { >+ memset((char *)&u->ut_name, '\0', sizeof(u->ut_name)); >+ memset((char *)&u->ut_host, '\0', sizeof(u->ut_host)); >+ } >+ (void) write(fd, u, sizeof(struct utmp)); >+ >+ (void) close(fd); > } > #endif /* HAVE_PUTUTLINE */ >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 2798
: 1273