Annotation of embedaddon/curl/tests/tftpserver.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 = 8997; # just a default
! 43: my $ipvnum = 4; # default IP version of tftp server
! 44: my $idnum = 1; # default tftp server instance number
! 45: my $proto = 'tftp'; # protocol the tftp server speaks
! 46: my $pidfile;
! 47: my $portfile;
! 48: my $logfile;
! 49: my $srcdir;
! 50: my $fork;
! 51:
! 52: my $flags = "";
! 53: my $path = '.';
! 54: my $logdir = $path .'/log';
! 55:
! 56: while(@ARGV) {
! 57: if($ARGV[0] eq '--pidfile') {
! 58: if($ARGV[1]) {
! 59: $pidfile = $ARGV[1];
! 60: shift @ARGV;
! 61: }
! 62: }
! 63: elsif($ARGV[0] eq '--portfile') {
! 64: if($ARGV[1]) {
! 65: $portfile = $ARGV[1];
! 66: shift @ARGV;
! 67: }
! 68: }
! 69: elsif($ARGV[0] eq '--logfile') {
! 70: if($ARGV[1]) {
! 71: $logfile = $ARGV[1];
! 72: shift @ARGV;
! 73: }
! 74: }
! 75: elsif($ARGV[0] eq '--srcdir') {
! 76: if($ARGV[1]) {
! 77: $srcdir = $ARGV[1];
! 78: shift @ARGV;
! 79: }
! 80: }
! 81: elsif($ARGV[0] eq '--ipv4') {
! 82: $ipvnum = 4;
! 83: }
! 84: elsif($ARGV[0] eq '--ipv6') {
! 85: $ipvnum = 6;
! 86: }
! 87: elsif($ARGV[0] eq '--port') {
! 88: if($ARGV[1] =~ /^(\d+)$/) {
! 89: $port = $1;
! 90: shift @ARGV;
! 91: }
! 92: }
! 93: elsif($ARGV[0] eq '--id') {
! 94: if($ARGV[1] =~ /^(\d+)$/) {
! 95: $idnum = $1 if($1 > 0);
! 96: shift @ARGV;
! 97: }
! 98: }
! 99: elsif($ARGV[0] eq '--verbose') {
! 100: $verbose = 1;
! 101: }
! 102: else {
! 103: print STDERR "\nWarning: tftpserver.pl unknown parameter: $ARGV[0]\n";
! 104: }
! 105: shift @ARGV;
! 106: }
! 107:
! 108: if(!$srcdir) {
! 109: $srcdir = $ENV{'srcdir'} || '.';
! 110: }
! 111: if(!$pidfile) {
! 112: $pidfile = "$path/". server_pidfilename($proto, $ipvnum, $idnum);
! 113: }
! 114: if(!$logfile) {
! 115: $logfile = server_logfilename($logdir, $proto, $ipvnum, $idnum);
! 116: }
! 117:
! 118: $flags .= "--pidfile \"$pidfile\" ".
! 119: "--portfile \"$portfile\" ".
! 120: "--logfile \"$logfile\" ";
! 121: $flags .= "--ipv$ipvnum --port $port --srcdir \"$srcdir\"";
! 122:
! 123: exec("server/tftpd".exe_ext('SRV')." $flags");
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>