Commit 3851c6aa authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

support the new --id command line option, that allows a second (or third or

whatever) instance to run without overwriting the previous' logfiles
parent ae03fa7d
Loading
Loading
Loading
Loading
+12 −5
Original line number Original line Diff line number Diff line
@@ -38,11 +38,13 @@ use strict;


require "getpart.pm";
require "getpart.pm";


my $ftpdnum="";

# open and close each time to allow removal at any time
# open and close each time to allow removal at any time
sub logmsg {
sub logmsg {
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
        localtime(time);
        localtime(time);
    open(FTPLOG, ">>log/ftpd.log");
    open(FTPLOG, ">>log/ftpd$ftpdnum.log");
    printf FTPLOG ("%02d:%02d:%02d ", $hour, $min, $sec);
    printf FTPLOG ("%02d:%02d:%02d ", $hour, $min, $sec);
    print FTPLOG @_;
    print FTPLOG @_;
    close(FTPLOG);
    close(FTPLOG);
@@ -50,8 +52,8 @@ sub logmsg {


sub ftpmsg {
sub ftpmsg {
  # append to the server.input file
  # append to the server.input file
  open(INPUT, ">>log/server.input") ||
  open(INPUT, ">>log/server$ftpdnum.input") ||
    logmsg "failed to open log/server.input\n";
    logmsg "failed to open log/server$ftpdnum.input\n";


  INPUT->autoflush(1);
  INPUT->autoflush(1);
  print INPUT @_;
  print INPUT @_;
@@ -77,6 +79,10 @@ do {
        $srcdir=$ARGV[1];
        $srcdir=$ARGV[1];
        shift @ARGV;
        shift @ARGV;
    }
    }
    elsif($ARGV[0] eq "--id") {
        $ftpdnum=$ARGV[1];
        shift @ARGV;
    }
    elsif($ARGV[0] =~ /^(\d+)$/) {
    elsif($ARGV[0] =~ /^(\d+)$/) {
        $port = $1;
        $port = $1;
    }
    }
@@ -90,9 +96,10 @@ setsockopt(Server, SOL_SOCKET, SO_REUSEADDR,
bind(Server, sockaddr_in($port, INADDR_ANY))|| die "bind: $!";
bind(Server, sockaddr_in($port, INADDR_ANY))|| die "bind: $!";
listen(Server,SOMAXCONN) || die "listen: $!";
listen(Server,SOMAXCONN) || die "listen: $!";


#print "FTP server started on port $port\n";


open(PID, ">.ftp.pid");
logmsg "FTP server started on port $port\n";

open(PID, ">.ftp$ftpdnum.pid");
print PID $$;
print PID $$;
close(PID);
close(PID);