utmp update for bsd systems (try 2)

David Lee t.d.lee at durham.ac.uk
Mon Apr 18 09:02:29 GMT 2005


On Sat, 16 Apr 2005, Andrew Bartlett wrote:

> On Sat, 2005-04-16 at 07:18 -0400, Michael Shalayeff wrote:
>
>> what is so "wrong" in it for you?
>> maybe we can "fix" it...
>
> I don't like such low-level messing with the utmp file.  How does ftpd
> on the BSDs handle utmp?  This is the modal David Lee used originally, I
> think.

It's nearly six years since I did the Samba utmp code, so my memory of it 
is fading.

I never had access to, or experience of, BSD.  In previous years we had 
used SunOS 4, which seems to be similar and was likewise based on the BSD 
subtree of UN*X, but we never used that with Samba.

So the comments in the source code about SunOS 4 and BSD are based simply 
on a perusal of man pages (supplemented by some prior experience, though 
none directly of umtp) of SunOS 4.

>
> If the login() and logout() apis are not useful (has this been tested?),
> can they be improved by the BSD crew to honour the contents of the
> struct utmp?
>
> Basically, I want anything that avoids doing a write() to those files
> directly.

Use of the higher-level subroutines ("pututline()", "login()" etc.), where 
provided by the OS, certainly seems preferable.  For one thing, it should 
(assuming no bugs!) manage locking, in a consistent fashion, of the 
underlying utmp/wtmp database files.  (Imagine two or more simultaneous 
connects or disconnects of any entities (ftpd, telnetd, sshd, smbd, ...) 
which try to update those database files.)

Hope that helps.

-- 

:  David Lee                                I.T. Service          :
:  Senior Systems Programmer                Computer Centre       :
:                                           University of Durham  :
:  http://www.dur.ac.uk/t.d.lee/            South Road            :
:                                           Durham                :
:  Phone: +44 191 334 2752                  U.K.                  :


More information about the samba-technical mailing list