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