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>