Make automated FSCommand invocation tests show player-side output.
[gnash.git] / testsuite / XmlSocketServer.pl
blobf3ff8ac5b22b1063208e04a3f657bafb59181635
1 use IO::Socket;
2 use IO::Socket::INET6;
3 use IO::Select;
4 use Time::HiRes;
6 $SIG{PIPE}='IGNORE';
8 my $m;
9 %socketArgs = (Listen=>1,LocalPort=>2229,Reuse=>1,Proto=>'tcp');
10 $m = IO::Socket::INET6->new(%socketArgs)
11 or $m = IO::Socket::INET->new(%socketArgs)
12 or die ("Socket creation failed: $!\n");
14 my $O = new IO::Select($m) or die ("Select failed: $!\n");
16 $verbose = ( $ARGV[0] eq '-v' ) ? 1 : 0;
18 $/ = "\0";
20 while (@S = $O->can_read) {
21 foreach (@S) {
22 if ($_==$m) {
23 $C=$m->accept;
24 $O->add($C);
26 else {
27 my $R=sysread($_, $i, 16000);
29 # Log message received:
30 print "XmlSocketServer: received \"$i\"\n" if $verbose;
32 if ($R==0) {
33 $T=syswrite($_, "\n", 16000);
34 if ($T==undef) {
35 $O->remove($_);
38 else {
40 # Sleep a bit before sending a reply to mimic web traffic
41 # (well, sort of).
42 Time::HiRes::sleep(0.1);
43 print "XmlSocketServer: sending \"$i\" \n" if $verbose;
45 $i =~ s/\*NEWLINE\*/\n/g;
46 $i =~ s/\*NULL\*/\0/g;
48 $T=syswrite($_, $i, 16000);
51 if ($i =~ m/closeNow/) {
52 print("XmlSocketServer: closing...\n") if $verbose;
53 close($C) || die "Could not close reading Socket";
59 close($m) || die "Could not close server Socket";
60 print("XmlSocketServer: salut!\n") if $verbose;