On Mon, 03 Mar 2003 09:59:01 -0700, [EMAIL PROTECTED] wrote:

>Is there an issue running perl under linux xinetd where xinetd is
>listening for connections on a UDP port and then forking the following
>perl code.  When I do this, the perl code does not see any input on
>STDIN.  How does one get at the data received on the socket
>by xinetd?

>while (<STDIN>) {
>      $input = $_;
>      syslog('info', "Read : $input") ;
>    }

I see 2 possible problems, 1 is the /etc/xinetd.conf setup,
and the other is buffering.  

I have your example running by doing the following:

In /etc/xinetd.conf:
##########################################3
# test scripts, choose an unused port
# name the service something
# add protocol,port, and server

service xtest
{
        socket_type             = stream
        protocol                = tcp
        port                    = 8085
        flags                   = REUSE
        wait                    = no
        instances               = UNLIMITED
        user                    = root
        server                  = /usr/local/bin/xtest
}
#############################################

/usr/local/bin/xtest   (chmod 755)
##############################################
#!/usr/bin/perl
use Sys::Syslog;

syslog('info', "Started: time()") ;

select (STDOUT);$|++;
print "Start typing\r\n";

select (STDIN);$|++;
while (<STDIN>) {
      $input = $_;
      syslog('info', "Read : $input") ;
 }
###############################################

Then "telnet 127.0.0.1 8085";   you need to hit the telnet escape
^]   then type quit to exit.





-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to