Files
Mozilla/mozilla/calendar/modules/test/tools/wwwget.pl
dmose%mozilla.org 630d8b77f1 updating license boilerplate
git-svn-id: svn://10.0.0.236/trunk@52521 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:13:48 +00:00

87 lines
2.3 KiB
Raku
Executable File

#! /tools/ns/bin/perl5.004
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
######################################################################
#
# This is a simple HTTP command-line getter program. You simply give
# it the URL where you want it to get things, and it goes off and
# reads the information. There are several flags that can be used to
# control what is done with the output.
#
# Usage:
# wwwget <host> <path>
#
# Example:
# wwwget www.infoseek.com /index.html
# Steve Mansour
# sman@netscape.com
# Aug 27, 1998
use Socket;
die "Usage:\n$0 host page\n" if $#ARGV <1;
print "Content-type: text/html\n\n";
print &GetHTTP($ARGV[0],$ARGV[1]);
exit 0;
sub GetHTTP
{
my($remote,$doc) = @_;
my ($port, $iaddr, $paddr, $proto, $line);
$port = 80;
if ($port =~ /\D/)
{ $port = getservbyname($port, 'tcp') }
die "No port" unless $port;
$iaddr = inet_aton($remote) || die "no host: $remote";
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
connect(SOCK, $paddr) || die "connect: $!";
select(SOCK); $| = 1; select(STDOUT);
###########################
# Ask for the data...
###########################
print SOCK "GET $doc HTTP/1.0\n\n";
##############################
# skip over the meta data...
##############################
do {
$line = <SOCK>
} until ($line =~ /^\r\n/);
##############################
# gobble up the output...
##############################
@output = <SOCK>;
close (SOCK) || die "close: $!";
@output;
}