git: talkd: Find users in more than one talk request.

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jan 15 16:46:35 PST 2021


commit c420de58e07cf2a4714e37098cab149c715362ff
Author: Dan Cross <cross at gajendra.net>
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 <cross at gajendra.net>

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



More information about the Commits mailing list