commit c420de58e07cf2a4714e37098cab149c715362ff
Author: Dan Cross <[email protected]>
Date:   Wed Jan 13 23:55:47 2021 +0000

    talkd: Find users in more than one talk request.
    
    talkd was written to use `utmpentry` from `who`, which
    caches the results of read the `utmpx` file.  However,
    talkd is usually invoked from inetd `wait` mode; it's
    possible that a user might login after `talkd` starts;
    with the cached utmpx data, one can't `talk` to that
    user.
    
    Further, consumption of the utmp data nulls it out for
    subsequent requests.  The result is that the first talk
    succeeds, but subsequent requests fail.
    
    The fix is to avoid using the `utmpentry` machinery,
    and just read `utmp` directly every time we need to.
    
    Signed-off-by: Dan Cross <[email protected]>

Summary of changes:
 libexec/talkd/Makefile  |  5 ++--
 libexec/talkd/extern.h  |  2 +-
 libexec/talkd/process.c | 65 ++++++++++++++++++++++++++-----------------------
 3 files changed, 38 insertions(+), 34 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c420de58e07cf2a4714e37098cab149c715362ff


-- 
DragonFly BSD source repository

Reply via email to