Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 145592 - net-misc/netkit-talk is missing argument in xinetd config
Summary: net-misc/netkit-talk is missing argument in xinetd config
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Jeremy Olexa (darkside) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-08-30 05:48 UTC by j.habenicht
Modified: 2008-05-22 09:51 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description j.habenicht 2006-08-30 05:48:56 UTC
Hello,

I emerged and tried the talkd, but failed.
A search on forums.gentoo.org showed a missing argument in the xinetd config file which starts the talkd daemon.
(http://forums.gentoo.org/viewtopic-t-220853.html)
In /etc/xinetd.d/talk the server_args option is missing
        server_args             = talkd
else the talkd wouldn't start.

greetings
Comment 1 Rumi Szabolcs 2007-12-15 06:14:57 UTC
ntalk still has problems...

I've tried two configuration settings, first the default one from portage,
apart from obviously setting "disable" to "no":

service ntalk
{
        disable                 = no
#       flags                   = IPv4
        socket_type             = dgram
        wait                    = yes
        user                    = nobody
        group                   = tty
        server                  = /usr/sbin/in.talkd
}

And the modified one that was suggested here and also in the gentoo forums:

service ntalk
{
        disable                 = no
        flags                   = NAMEINARGS
        socket_type             = dgram
        wait                    = yes
        user                    = nobody
        group                   = tty
        server                  = /usr/sbin/in.talkd
        server_args             = talkd
}

Neither one works, clients are getting the infamous:

[Checking for invitation on caller's machine]

Syslog shows:

Dec 15 06:59:07 rocks xinetd[25676]: START: ntalk pid=25684 from=195.70.37.87
Dec 15 06:59:07 rocks xinetd[25684]: FAIL: ntalk address from=195.70.37.87
Dec 15 06:59:07 rocks xinetd[25676]: EXIT: ntalk status=0 pid=25684 duration=0(sec)

Tcpdump shows only outgoing packets but no replies.

The -d and -p flags for talkd don't seem to be honored either, so
it looks like as if xinetd would be listening the correct port (518)
and be picking up incoming requests but had trouble starting up talkd.

Talkd seems to be linked correctly, is at the correct place, has the
correct permissions and is startable.
Comment 2 Rumi Szabolcs 2007-12-15 06:53:34 UTC
Now I tried to modify talkd to be a bit more informative right at
the beginning of main(). I guess xinetd is dropping any stderr output
from talkd silently so I also replaced that with a syslog call:

--- talkd.c.old 2007-12-15 07:21:16.000000000 +0100
+++ talkd.c     2007-12-15 07:37:02.198618888 +0100
@@ -336,13 +336,14 @@
        socklen_t sz = sizeof(sn);
        int do_debug=0, do_badpackets=0, ch;

+       openlog("talkd", LOG_PID, LOG_DAEMON);
+       syslog(LOG_NOTICE, "starting up");
+
        /* make sure we're a daemon */
        if (getsockname(0, (struct sockaddr *)&sn, &sz)) {
-               const char *msg = strerror(errno);
-               write(2, msg, strlen(msg));
+               syslog(LOG_ERR, "getsockname: %s", strerror(errno));
                exit(1);
        }
-       openlog("talkd", LOG_PID, LOG_DAEMON);
        if (gethostname(ourhostname, sizeof(ourhostname) - 1) < 0) {
                syslog(LOG_ERR, "gethostname: %s", strerror(errno));
                exit(1);

And started up xinetd in debug mode:

07/12/15@07:38:11: DEBUG: 29526 {cnf_start_services} Started service: ntalk
07/12/15@07:38:11: DEBUG: 29526 {cnf_start_services} mask_max = 9, services_started = 3
07/12/15@07:38:11: NOTICE: 29526 {main} xinetd Version 2.3.14 started with libwrap loadavg options compiled in.
07/12/15@07:38:11: NOTICE: 29526 {main} Started working: 3 available services
07/12/15@07:38:11: DEBUG: 29526 {main_loop} active_services = 3
07/12/15@07:38:23: DEBUG: 29526 {main_loop} select returned 1
07/12/15@07:38:23: DEBUG: 29526 {svc_suspend} Suspended service ntalk
07/12/15@07:38:23: DEBUG: 29526 {server_start} Starting service ntalk
07/12/15@07:38:23: DEBUG: 29526 {main_loop} active_services = 2
07/12/15@07:38:23: DEBUG: 29526 {main_loop} active_services = 2
07/12/15@07:38:23: DEBUG: 29526 {main_loop} select returned 1
07/12/15@07:38:23: DEBUG: 29526 {check_pipe} Got signal 17 (Child exited)
07/12/15@07:38:23: DEBUG: 29526 {child_exit} waitpid returned = 29528
07/12/15@07:38:23: DEBUG: 29526 {server_end} ntalk server 29528 exited
07/12/15@07:38:23: DEBUG: 29526 {drain} UDP socket should be empty
07/12/15@07:38:23: DEBUG: 29526 {svc_resume} Resumed service ntalk
07/12/15@07:38:23: DEBUG: 29526 {child_exit} waitpid returned = -1
07/12/15@07:38:23: DEBUG: 29526 {main_loop} active_services = 3

Still nothing from talkd in the syslog:

Dec 15 07:38:23 rocks xinetd[29526]: START: ntalk pid=29528 from=195.70.37.87
Dec 15 07:38:23 rocks xinetd[29528]: FAIL: ntalk address from=195.70.37.87
Dec 15 07:38:23 rocks xinetd[29526]: EXIT: ntalk status=0 pid=29528 duration=0(sec)
Comment 3 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2008-05-21 20:35:12 UTC
This is simply a configuration issue. I installed netkit-talk and got it running within 5 minutes after reading comment #0 and the forum post that was referenced.

However, the ebuild does need to RDEPEND on virtual/xinetd. Will fix this up probably later today.

Removing treecleaner from CC because this package does not fit the criteria for removal.
Comment 4 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2008-05-22 02:14:03 UTC
(In reply to comment #3)
> However, the ebuild does need to RDEPEND on virtual/xinetd. Will fix this up
> probably later today.

In CVS. 

Thanks for reporting but I don't feel the issue is a bug but merely a configuration issue. 

(I do not wish to be maintainer for this package but I will fix any problems related to this commit/bug)
Comment 5 Rumi Szabolcs 2008-05-22 09:51:02 UTC
It really works. To make it clear, what made the difference
is when I've put the following into /etc/xinetd.d/ntalk:

only_from += <FQDN of the host>

Because even a talk session between two local users addresses
the host by it's FQDN and not as "localhost".