Annotation of embedaddon/curl/tests/httpserver.pl, revision 1.1.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>