Annotation of embedaddon/curl/tests/httpserver.pl, revision 1.1
1.1 ! misho 1: #!/usr/bin/env perl
! 2: #***************************************************************************
! 3: # _ _ ____ _
! 4: # Project ___| | | | _ \| |
! 5: # / __| | | | |_) | |
! 6: # | (__| |_| | _ <| |___
! 7: # \___|\___/|_| \_\_____|
! 8: #
! 9: # Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
! 10: #
! 11: # This software is licensed as described in the file COPYING, which
! 12: # you should have received as part of this distribution. The terms
! 13: # are also available at https://curl.haxx.se/docs/copyright.html.
! 14: #
! 15: # You may opt to use, copy, modify, merge, publish, distribute and/or sell
! 16: # copies of the Software, and permit persons to whom the Software is
! 17: # furnished to do so, under the terms of the COPYING file.
! 18: #
! 19: # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
! 20: # KIND, either express or implied.
! 21: #
! 22: #***************************************************************************
! 23:
! 24: BEGIN {
! 25: push(@INC, $ENV{'srcdir'}) if(defined $ENV{'srcdir'});
! 26: push(@INC, ".");
! 27: }
! 28:
! 29: use strict;
! 30: use warnings;
! 31:
! 32: use serverhelp qw(
! 33: server_pidfilename
! 34: server_logfilename
! 35: );
! 36:
! 37: use sshhelp qw(
! 38: exe_ext
! 39: );
! 40:
! 41: my $verbose = 0; # set to 1 for debugging
! 42: my $port = 8990; # just a default
! 43: my $unix_socket; # location to place a listening Unix socket
! 44: my $ipvnum = 4; # default IP version of http server
! 45: my $idnum = 1; # default http server instance number
! 46: my $proto = 'http'; # protocol the http server speaks
! 47: my $pidfile; # pid file
! 48: my $portfile; # port number file
! 49: my $logfile; # log file
! 50: my $connect; # IP to connect to on CONNECT
! 51: my $srcdir;
! 52: my $gopher = 0;
! 53:
! 54: my $flags = "";
! 55: my $path = '.';
! 56: my $logdir = $path .'/log';
! 57:
! 58: while(@ARGV) {
! 59: if($ARGV[0] eq '--pidfile') {
! 60: if($ARGV[1]) {
! 61: $pidfile = $ARGV[1];
! 62: shift @ARGV;
! 63: }
! 64: }
! 65: elsif($ARGV[0] eq '--portfile') {
! 66: if($ARGV[1]) {
! 67: $portfile = $ARGV[1];
! 68: shift @ARGV;
! 69: }
! 70: }
! 71: elsif($ARGV[0] eq '--logfile') {
! 72: if($ARGV[1]) {
! 73: $logfile = $ARGV[1];
! 74: shift @ARGV;
! 75: }
! 76: }
! 77: elsif($ARGV[0] eq '--srcdir') {
! 78: if($ARGV[1]) {
! 79: $srcdir = $ARGV[1];
! 80: shift @ARGV;
! 81: }
! 82: }
! 83: elsif($ARGV[0] eq '--ipv4') {
! 84: $ipvnum = 4;
! 85: }
! 86: elsif($ARGV[0] eq '--ipv6') {
! 87: $ipvnum = 6;
! 88: }
! 89: elsif($ARGV[0] eq '--unix-socket') {
! 90: $ipvnum = 'unix';
! 91: if($ARGV[1]) {
! 92: $unix_socket = $ARGV[1];
! 93: shift @ARGV;
! 94: }
! 95: }
! 96: elsif($ARGV[0] eq '--gopher') {
! 97: $gopher = 1;
! 98: }
! 99: elsif($ARGV[0] eq '--port') {
! 100: if($ARGV[1] =~ /^(\d+)$/) {
! 101: $port = $1;
! 102: shift @ARGV;
! 103: }
! 104: }
! 105: elsif($ARGV[0] eq '--connect') {
! 106: if($ARGV[1]) {
! 107: $connect = $ARGV[1];
! 108: shift @ARGV;
! 109: }
! 110: }
! 111: elsif($ARGV[0] eq '--id') {
! 112: if($ARGV[1] =~ /^(\d+)$/) {
! 113: $idnum = $1 if($1 > 0);
! 114: shift @ARGV;
! 115: }
! 116: }
! 117: elsif($ARGV[0] eq '--verbose') {
! 118: $verbose = 1;
! 119: }
! 120: else {
! 121: print STDERR "\nWarning: httpserver.pl unknown parameter: $ARGV[0]\n";
! 122: }
! 123: shift @ARGV;
! 124: }
! 125:
! 126: if(!$srcdir) {
! 127: $srcdir = $ENV{'srcdir'} || '.';
! 128: }
! 129: if(!$pidfile) {
! 130: $pidfile = "$path/". server_pidfilename($proto, $ipvnum, $idnum);
! 131: }
! 132: if(!$portfile) {
! 133: $portfile = "$path/". server_portfilename($proto, $ipvnum, $idnum);
! 134: }
! 135: if(!$logfile) {
! 136: $logfile = server_logfilename($logdir, $proto, $ipvnum, $idnum);
! 137: }
! 138:
! 139: $flags .= "--pidfile \"$pidfile\" ".
! 140: "--logfile \"$logfile\" ".
! 141: "--portfile \"$portfile\" ";
! 142: $flags .= "--gopher " if($gopher);
! 143: $flags .= "--connect $connect " if($connect);
! 144: if($ipvnum eq 'unix') {
! 145: $flags .= "--unix-socket '$unix_socket' ";
! 146: } else {
! 147: $flags .= "--ipv$ipvnum --port $port ";
! 148: }
! 149: $flags .= "--srcdir \"$srcdir\"";
! 150:
! 151: if($verbose) {
! 152: print STDERR "RUN: server/sws".exe_ext('SRV')." $flags\n";
! 153: }
! 154:
! 155: exec("server/sws".exe_ext('SRV')." $flags");
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>