-N(NAT_address) option added for socks

This commit is contained in:
z3APA3A 2020-10-07 11:21:01 +03:00
parent d0725163d1
commit ebd7b34159
3 changed files with 8 additions and 3 deletions

View File

@ -346,6 +346,9 @@ int MODULEMAINFUNC (int argc, char** argv){
#endif
}
break;
case 'N':
getip46(46, (unsigned char *)argv[i]+2, (struct sockaddr *)&srv.extNat);
break;
case 'p':
*SAPORT(&srv.intsa) = htons(atoi(argv[i]+2));
break;

View File

@ -173,9 +173,9 @@ void * sockschild(struct clientparam* param) {
case 3:
#ifndef NOIPV6
param->sinsl = *SAFAMILY(&param->req)==AF_INET6? param->srv->extsa6 : param->srv->extsa;
param->sinsl = *SAFAMILY(&param->req)==AF_INET6? param->srv->extsa6 : (SAISNULL(&param->srv->extNat)?param->srv->extsa:param->srv->extNat);
#else
param->sinsl = param->srv->extsa;
param->sinsl = SAISNULL(&param->srv->extNat)?param->srv->extsa:param->srv->extNat;
#endif
if ((param->remsock=so._socket(SASOCK(&param->req), command == 2? SOCK_STREAM:SOCK_DGRAM, command == 2?IPPROTO_TCP:IPPROTO_UDP)) == INVALID_SOCKET) {RETURN (11);}
param->operation = command == 2?BIND:UDPASSOC;
@ -461,7 +461,7 @@ struct proxydef childdef = {
1080,
0,
S_SOCKS,
""
"-N(EXTERNAL_IP) External NAT address to report to client for BIND\n"
};
#include "proxymain.c"
#endif

View File

@ -445,9 +445,11 @@ struct srvparam {
struct sockaddr_in6 intsa;
struct sockaddr_in6 extsa6;
struct sockaddr_in6 extsa;
struct sockaddr_in6 extNat;
#else
struct sockaddr_in intsa;
struct sockaddr_in extsa;
struct sockaddr_in extNat;
#endif
pthread_mutex_t counter_mutex;
struct pollfd fds;