libsmbclient and smb_opendir: problem with workgroup

Derrell.Lipman at UnwiredUniverse.com Derrell.Lipman at UnwiredUniverse.com
Mon Jun 14 21:08:47 GMT 2004


"Christopher R. Hertel" <crh at ubiqx.mn.org> writes:

>> > A timeout might be a reasonable thing to consider.
>> 
>> Argh.  That timeout stuff in the code has problems.  
>
> Then we're probably best off trying to figure out and fix the problems.
>
>> The extra pipe that's created in lib/select.c in implementing the timeout
>> (and presumably eliminating a race condition) does not seem to be reliable;
>> i.e. it still blocks indefinitely on occasion, requiring a kill.  I'd sure
>> rather not add more uses of sys_select() if at all possible...  In
>> principle, a timeout might be a reasonable thing to consider.
>
> There should, generally, only be need of one, and I tend to write to
> poll() rather than select() when possible.  I'll have to take a look when 
> I get some time.

At the libsmbclient level, we don't really have a choice in what underlying
system calls are used (without re-implementing other samba library code).  In
this case, there are a number of functions in namequery.c (IIRC) that do the
various queries, and these are the ones which call the low-level functions
such as the sys_select() interface in lib/select.c.

As a side note... The determination of whether to use poll() or select() is
really one of which OS is in use.  BSD derivatives have a select() system call
and (unless it's changed recently or my memory fails me) poll() is implemented
as a library call on top of select().  SysIII, SYSV derivatives have poll() as
the system call and may or may not provide select() as a library call.  Linux
provides both as system calls (with poll() added as of version 2.1.23).  The
decision to use poll() or select() should usually be based on which one is a
native system call.  I'm not sure whether that's done in samba, though.  I
don't recall ever seeing use of poll() anyplace.

>> All right.  Again, though, before I go and change a working (but
>> unsatisfactory, you're telling me) implementation, I'd like to pow-wow with
>> all of the various powers that be so we all come to consensus.
>
> Fair enough.

Anyone reading this...  If you've been involved in libsmbclient and/or
browsing, and feel you should be part of the pow-wow, please chime in!

Chris...  So you, me, and Richard at a minimum.  You likely know the
developers and their tasks / accomplishments / interests far better than I.
Who else might be interested or should be involved, i.e. should be invited to
participate?

Cheers,

Derrell


More information about the samba-technical mailing list