delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/02/24/00:09:04

X-Spam-Check-By: sourceware.org
X-BigFish: V
MIME-Version: 1.0
Subject: Perl NET::SERVER module acts strangly in cygwin
Date: Thu, 23 Feb 2006 21:08:55 -0800
Message-ID: <B7392353E4C4DE4ABC4EC255DB4CA04003471396@EXCHVS1.spimageworks.com>
From: "Bruce Dobrin" <dobrin AT imageworks DOT com>
To: <cygwin AT cygwin DOT com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id k1O58t7C026677

HI All,
Perhaps this is the wrong list for this,  but as it is Cygwin
specific...
Anyone have any experience with the perl NET::SERVER module?
I have been re-writing some of my perl servers using the
NET::SERVER::PREFORK  (v.90)module.  All is well on Linux but in Cygwin
(1.5.18) everything works fine until I try to take the data coming in
via the socket ($_)  and fork off a "system" or "exec" using that data.
When I do this,  the client connection is abruptly closed without
successfully performing the "system" call.  If I define the variable
internally it all works fine. 

Example:
Sub make_dirs (
 my $destinU = $_ ;
 chomp;

  $destinU =~ tr#\\#/#;
  $destinU =~ tr/://d;

  print "unix style destination is $destinU \r\n";
 
  if (! -d "$destinU" ){
    print   "system \"mkdir -p ${destinU}\"\r\n";
   system "mkdir -p /cygdrive/c/${destinU}" ;

Result:
unix style destination is c/temp/newdir
mkdir -p /cygdrive/c/temp/newdir

#####And nothing happens and client session crashes.

If I set the above second line to : 
my $destinU = c:\temp\newdir ;

I get :
unix style destination is c/temp/newdir
mkdir -p /cygdrive/c/temp/newdir

#### the directory is created and the client session remains open and
stable.

If I run the first example on Linux (centos4) All works as it's suppose
to and I get weird /cygdrive/c/temp directorys ;)

I tried running the above example in a script using the SOCKET module,
and the above worked as expected .

I've been staring at strace logs,  but I'm not getting anywhere...

Any help or suggestions would be appreciated
Bruce D.



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019