summaryrefslogtreecommitdiff
path: root/tests/scripts/webclient.pl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtests/scripts/webclient.pl46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/scripts/webclient.pl b/tests/scripts/webclient.pl
new file mode 100755
index 0000000..081d80c
--- /dev/null
+++ b/tests/scripts/webclient.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl -w
+
+# Simple command line web client.
+# Initially loosely based on examples from the perlipc manpage.
+#
+# Copyright (C) 2009 Michael Adam
+#
+# License: GPL
+
+use strict;
+
+use IO::Socket;
+
+my $EOL = "\015\012";
+my $BLANK = $EOL x 2;
+
+unless (@ARGV > 1) {
+ die "usage: $0 host[:port] document ...";
+}
+
+my $host = shift(@ARGV);
+my $port = "http(80)";
+
+if ($host =~ /^([^:]+):(.*)/) {
+ $port = $2;
+ $host = $1;
+}
+
+foreach my $document (@ARGV) {
+ my $remote = IO::Socket::INET->new(
+ Proto => "tcp",
+ PeerAddr => $host,
+ PeerPort => $port,
+ );
+ unless ($remote) {
+ die "cannot connect to http daemon on $host (port $port)";
+ }
+
+ $remote->autoflush(1);
+
+ print $remote "GET $document HTTP/1.0" . $BLANK;
+ while (<$remote>) {
+ print;
+ }
+ close $remote;
+}