mirror of
https://github.com/moparisthebest/curl
synced 2025-01-10 21:48:10 -05:00
parent
ff7a3107ed
commit
bcd9813588
@ -2277,7 +2277,6 @@ sub runmqttserver {
|
||||
sub runsocksserver {
|
||||
my ($id, $verbose, $ipv6) = @_;
|
||||
my $ip=$HOSTIP;
|
||||
my $port = $SOCKSPORT;
|
||||
my $proto = 'socks';
|
||||
my $ipvnum = 4;
|
||||
my $idnum = ($id && ($id =~ /^(\d+)$/) && ($id > 1)) ? $id : 1;
|
||||
@ -2290,6 +2289,7 @@ sub runsocksserver {
|
||||
$server = servername_id($proto, $ipvnum, $idnum);
|
||||
|
||||
$pidfile = $serverpidfile{$server};
|
||||
my $portfile = $serverportfile{$server};
|
||||
|
||||
# don't retry if the server doesn't work
|
||||
if ($doesntrun{$pidfile}) {
|
||||
@ -2308,8 +2308,9 @@ sub runsocksserver {
|
||||
|
||||
# start our socks server, get commands from the FTP cmd file
|
||||
my $cmd="server/socksd".exe_ext('SRV').
|
||||
" --port $port ".
|
||||
" --port 0 ".
|
||||
" --pidfile $pidfile".
|
||||
" --portfile $portfile".
|
||||
" --backend $HOSTIP".
|
||||
" --config $FTPDCMD";
|
||||
my ($sockspid, $pid2) = startnew($cmd, $pidfile, 30, 0);
|
||||
@ -2322,11 +2323,13 @@ sub runsocksserver {
|
||||
return (0,0);
|
||||
}
|
||||
|
||||
my $port = pidfromfile($portfile);
|
||||
|
||||
if($verbose) {
|
||||
logmsg "RUN: $srvrname server is now running PID $pid2\n";
|
||||
}
|
||||
|
||||
return ($pid2, $sockspid);
|
||||
return ($pid2, $sockspid, $port);
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
@ -3159,7 +3162,6 @@ sub checksystem {
|
||||
logmsg sprintf("RTSP-IPv6/%d ", $RTSP6PORT);
|
||||
}
|
||||
logmsg sprintf("\n* SSH/%d ", $SSHPORT);
|
||||
logmsg sprintf("SOCKS/%d ", $SOCKSPORT);
|
||||
if($httptlssrv) {
|
||||
logmsg sprintf("HTTPTLS/%d ", $HTTPTLSPORT);
|
||||
if($has_ipv6) {
|
||||
@ -4883,7 +4885,7 @@ sub startservers {
|
||||
}
|
||||
elsif($what eq "socks4" || $what eq "socks5" ) {
|
||||
if(!$run{'socks'}) {
|
||||
($pid, $pid2) = runsocksserver("", $verbose);
|
||||
($pid, $pid2, $SOCKSPORT) = runsocksserver("", $verbose);
|
||||
if($pid <= 0) {
|
||||
return "failed starting socks server";
|
||||
}
|
||||
@ -5442,7 +5444,6 @@ $minport = $base; # original base port number
|
||||
$HTTPSPORT = $base++; # HTTPS (stunnel) server port
|
||||
$FTPSPORT = $base++; # FTPS (stunnel) server port
|
||||
$SSHPORT = $base++; # SSH (SCP/SFTP) port
|
||||
$SOCKSPORT = $base++; # SOCKS port
|
||||
$RTSPPORT = $base++; # RTSP server port
|
||||
$RTSP6PORT = $base++; # RTSP IPv6 server port
|
||||
$HTTPTLSPORT = $base++; # HTTP TLS (non-stunnel) server port
|
||||
|
@ -883,6 +883,7 @@ int main(int argc, char *argv[])
|
||||
curl_socket_t msgsock = CURL_SOCKET_BAD;
|
||||
int wrotepidfile = 0;
|
||||
const char *pidname = ".socksd.pid";
|
||||
const char *portfile = NULL;
|
||||
bool juggle_again;
|
||||
int error;
|
||||
int arg = 1;
|
||||
@ -903,6 +904,11 @@ int main(int argc, char *argv[])
|
||||
if(argc>arg)
|
||||
pidname = argv[arg++];
|
||||
}
|
||||
else if(!strcmp("--portfile", argv[arg])) {
|
||||
arg++;
|
||||
if(argc>arg)
|
||||
portfile = argv[arg++];
|
||||
}
|
||||
else if(!strcmp("--config", argv[arg])) {
|
||||
arg++;
|
||||
if(argc>arg)
|
||||
@ -943,12 +949,6 @@ int main(int argc, char *argv[])
|
||||
if(argc>arg) {
|
||||
char *endptr;
|
||||
unsigned long ulnum = strtoul(argv[arg], &endptr, 10);
|
||||
if((endptr != argv[arg] + strlen(argv[arg])) ||
|
||||
((ulnum != 0UL) && ((ulnum < 1025UL) || (ulnum > 65535UL)))) {
|
||||
fprintf(stderr, "socksd: invalid --port argument (%s)\n",
|
||||
argv[arg]);
|
||||
return 0;
|
||||
}
|
||||
port = curlx_ultous(ulnum);
|
||||
arg++;
|
||||
}
|
||||
@ -961,6 +961,7 @@ int main(int argc, char *argv[])
|
||||
" --version\n"
|
||||
" --logfile [file]\n"
|
||||
" --pidfile [file]\n"
|
||||
" --portfile [file]\n"
|
||||
" --ipv4\n"
|
||||
" --ipv6\n"
|
||||
" --bindonly\n"
|
||||
@ -1013,6 +1014,13 @@ int main(int argc, char *argv[])
|
||||
goto socks5_cleanup;
|
||||
}
|
||||
|
||||
if(portfile) {
|
||||
wrotepidfile = write_portfile(portfile, port);
|
||||
if(!wrotepidfile) {
|
||||
goto socks5_cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
do {
|
||||
juggle_again = incoming(sock);
|
||||
} while(juggle_again);
|
||||
|
Loading…
Reference in New Issue
Block a user