utmp update for bsd systems (try 2)

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


On Sat, 16 Apr 2005, Michael Shalayeff wrote:

> Making, drinking tea and reading an opus magnum from Andrew Bartlett:
> -- Start of PGP signed section.
>> 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.
>>
>> 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.
>
> i think i've figured out the difficult part for you.
> if you open the source and read it you would see that
> there are whole bunch of functions that use all kinds
> of so called high-leel apis to write into utmp that do
> exist on many operating systems. this particular function
> that is losely aimed for bsd support exists for the whole
> purpose for systems that lack such functions.
> that is it -- IT MUST BE LOW-LEVEL as you call it.

(By "open the source", I assume the source in questions is Samba's 
"smbd/utmp.c".)

I admit that I did insert hooks for direct file-writing if necessary. 
But that was really only for last-resort, absence-of-anything-else, 
purposes.  And I admit that I made an association between these hooks and 
possible need for their use on BSD, but based on a no-direct-experience 
reading of the "utmp" man page, and over five years ago.

However, almost my first comment in the file, the first "Hints for 
porting", strongly urges programmatic (perhaps a poorly chosen word) use 
rather than direct file access.  I stand by this strong preference, not 
least because it should avoid (bugs notwithstanding) locking problems
with simultaneous update.

A reading of the BSD man pages (at "www.freebsd.org") for "login(3)" and 
"logout(3)", suggests that this login/logout avenue looks reasonable for 
further investigation.  There seems nothing in the man page which says 
that it has to be associated with a "tty".  Of course, such investigation 
might reveal a fundamental show-stopper along these (or other) lines for 
such a login/logout implementation.

We're all agreed that a Samba/utmp interface on BSD is desirable.  What it 
now needs is someone with a test rig (BSD, Samba 3.0.x) to try to do the 
best implementation.  I would suggest that the login/logout route is 
investigated first.  If some reasons then emerge that can prove this to be 
unworkable, then a fall-back direct file access method would seem to be 
unavoidable.

Michael: I've been, and, indeed, still am, where you are!  A relative 
"outsider" trying to get patches accepted by the Samba Team.  It can seem 
tedious.  They do sometimes need reminding.  But they are open to 
well-reasoned suggestions. Samba is phenomenally impressive, not least in 
its technical rigour and its high portability across a range of diverse OS 
features and interfaces.  To us, as outsiders, it can sometimes seem 
annoying and frustating.  But I can see, and understand, why they need to 
do this to preserve the integrity, protability and functionality of Samba. 
(Andrew and I have had our differences, haven't we?!)

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