Don't use scoped_lock objects to hold locks requested by libcurl. Should fix bug...
[gnash.git] / testsuite / XmlSocketServer.pl
blob3d06aee0ce59ea0985f111981326acf5c590effe
1 use IO::Socket;
2 use IO::Select;
3 use Time::HiRes;
5 $SIG{PIPE}='IGNORE';
7 my $m=new IO::Socket::INET(Listen=>1,LocalPort=>2229,Reuse=>1,Proto=>'tcp');
8 my $O=new IO::Select($m);
10 $verbose = ( $ARGV[0] eq '-v' ) ? 1 : 0;
12 $/ = "\0";
14 while (@S = $O->can_read) {
15 foreach (@S) {
16 if ($_==$m) {
17 $C=$m->accept;
18 $O->add($C);
20 else {
21 my $R=sysread($_, $i, 16000);
23 # Log message received:
24 print "XmlSocketServer: received \"$i\"\n" if $verbose;
26 if ($R==0) {
27 $T=syswrite($_, "\n", 16000);
28 if ($T==undef) {
29 $O->remove($_);
32 else {
34 # Sleep a bit before sending a reply to mimic web traffic
35 # (well, sort of).
36 Time::HiRes::sleep(0.1);
37 print "XmlSocketServer: sending \"$i\" \n" if $verbose;
39 $i =~ s/\*NEWLINE\*/\n/g;
40 $i =~ s/\*NULL\*/\0/g;
42 $T=syswrite($_, $i, 16000);
45 if ($i =~ m/closeNow/) {
46 print("XmlSocketServer: closing...\n") if $verbose;
47 close($C) || die "Could not close reading Socket";
53 close($m) || die "Could not close server Socket";
54 print("XmlSocketServer: salut!\n") if $verbose;