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
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.
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)
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.
(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)
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".