Fixes for NOIPV6

Fixes to compile without IPv6 support
This commit is contained in:
z3APA3A 2014-11-09 21:59:58 +03:00
parent 278955deef
commit b5bcb44e27
6 changed files with 41 additions and 15 deletions

View File

@ -618,12 +618,22 @@ int doconnect(struct clientparam * param){
if(!*SAPORT(&param->sinsr))*SAPORT(&param->sinsr) = *SAPORT(&param->req); if(!*SAPORT(&param->sinsr))*SAPORT(&param->sinsr) = *SAPORT(&param->req);
if ((param->remsock=so._socket(*SAFAMILY(&param->sinsr), SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) {return (11);} if ((param->remsock=so._socket(*SAFAMILY(&param->sinsr), SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) {return (11);}
so._setsockopt(param->remsock, SOL_SOCKET, SO_LINGER, (unsigned char *)&lg, sizeof(lg)); so._setsockopt(param->remsock, SOL_SOCKET, SO_LINGER, (unsigned char *)&lg, sizeof(lg));
if(*SAFAMILY(&param->sinsr) == AF_INET) memcpy(&param->sinsl, &param->srv->extsa, sizeof(param->srv->extsa)); #ifndef NOIPV6
if(*SAFAMILY(&param->sinsr) == AF_INET)
#endif
memcpy(&param->sinsl, &param->srv->extsa, sizeof(param->srv->extsa));
#ifndef NOIPV6
else memcpy(&param->sinsl, &param->srv->extsa6, sizeof(param->srv->extsa6)); else memcpy(&param->sinsl, &param->srv->extsa6, sizeof(param->srv->extsa6));
#endif
if (param->srv->targetport && !*SAPORT(&param->sinsl) && ntohs(*SAPORT(&param->sincr)) > 1023) *SAPORT(&param->sinsl) = *SAPORT(&param->sincr); if (param->srv->targetport && !*SAPORT(&param->sinsl) && ntohs(*SAPORT(&param->sincr)) > 1023) *SAPORT(&param->sinsl) = *SAPORT(&param->sincr);
if(so._bind(param->remsock, (struct sockaddr*)&param->sinsl, sizeof(param->sinsl))==-1) { if(so._bind(param->remsock, (struct sockaddr*)&param->sinsl, sizeof(param->sinsl))==-1) {
if(*SAFAMILY(&param->sinsr) == AF_INET) memcpy(&param->sinsl, &param->srv->extsa, sizeof(param->srv->extsa)); #ifndef NOIPV6
if(*SAFAMILY(&param->sinsr) == AF_INET)
#endif
memcpy(&param->sinsl, &param->srv->extsa, sizeof(param->srv->extsa));
#ifndef NOIPV6
else memcpy(&param->sinsl, &param->srv->extsa6, sizeof(param->srv->extsa6)); else memcpy(&param->sinsl, &param->srv->extsa6, sizeof(param->srv->extsa6));
#endif
if(so._bind(param->remsock, (struct sockaddr*)&param->sinsl, sizeof(param->sinsl))==-1) { if(so._bind(param->remsock, (struct sockaddr*)&param->sinsl, sizeof(param->sinsl))==-1) {
return 12; return 12;
} }

View File

@ -568,9 +568,11 @@ static void * ef_server_extsa(struct node * node){
return &((struct srvparam *)node->value) -> extsa; return &((struct srvparam *)node->value) -> extsa;
} }
#ifndef NOIPV6
static void * ef_server_extsa6(struct node * node){ static void * ef_server_extsa6(struct node * node){
return &((struct srvparam *)node->value) -> extsa6; return &((struct srvparam *)node->value) -> extsa6;
} }
#endif
static void * ef_server_acl(struct node * node){ static void * ef_server_acl(struct node * node){
return ((struct srvparam *)node->value) -> acl; return ((struct srvparam *)node->value) -> acl;
@ -747,18 +749,20 @@ static struct property prop_server[] = {
{prop_server + 4, "starttime", ef_server_starttime, TYPE_DATETIME, "service started seconds"}, {prop_server + 4, "starttime", ef_server_starttime, TYPE_DATETIME, "service started seconds"},
{prop_server + 5, "intsa", ef_server_intsa, TYPE_SA, "ip address of internal interface"}, {prop_server + 5, "intsa", ef_server_intsa, TYPE_SA, "ip address of internal interface"},
{prop_server + 6, "extsa", ef_server_extsa, TYPE_SA, "ip address of external interface"}, {prop_server + 6, "extsa", ef_server_extsa, TYPE_SA, "ip address of external interface"},
{prop_server + 7, "auth", ef_server_auth, TYPE_STRING, "service authentication type"},
{prop_server + 8, "acl", ef_server_acl, TYPE_ACE, "access control list"},
{prop_server + 9, "singlepacket", ef_server_singlepacket, TYPE_INTEGER, "is single packet redirection"},
{prop_server + 10, "usentlm", ef_server_usentlm, TYPE_INTEGER, "allow NTLM authentication"},
{prop_server + 11, "log", ef_server_log, TYPE_STRING, "type of logging"},
{prop_server + 12, "logtarget", ef_server_logtarget, TYPE_STRING, "log target options"},
{prop_server + 13, "logformat", ef_server_logformat, TYPE_STRING, "logging format string"},
{prop_server + 14, "nonprintable", ef_server_nonprintable, TYPE_STRING, "non printable characters"},
{prop_server + 15, "replacement", ef_server_replacement, TYPE_CHAR, "replacement character"},
{prop_server + 16, "childcount", ef_server_childcount, TYPE_INTEGER, "number of servers connected"},
{prop_server + 17, "child", ef_server_child, TYPE_CLIENT, "connected clients"},
#ifndef NOIPV6
{prop_server + 7, "extsa6", ef_server_extsa6, TYPE_SA, "ipv6 address of external interface"}, {prop_server + 7, "extsa6", ef_server_extsa6, TYPE_SA, "ipv6 address of external interface"},
{prop_server + 8, "auth", ef_server_auth, TYPE_STRING, "service authentication type"}, #endif
{prop_server + 9, "acl", ef_server_acl, TYPE_ACE, "access control list"},
{prop_server + 10, "singlepacket", ef_server_singlepacket, TYPE_INTEGER, "is single packet redirection"},
{prop_server + 11, "usentlm", ef_server_usentlm, TYPE_INTEGER, "allow NTLM authentication"},
{prop_server + 12, "log", ef_server_log, TYPE_STRING, "type of logging"},
{prop_server + 13, "logtarget", ef_server_logtarget, TYPE_STRING, "log target options"},
{prop_server + 14, "logformat", ef_server_logformat, TYPE_STRING, "logging format string"},
{prop_server + 15, "nonprintable", ef_server_nonprintable, TYPE_STRING, "non printable characters"},
{prop_server + 16, "replacement", ef_server_replacement, TYPE_CHAR, "replacement character"},
{prop_server + 17, "childcount", ef_server_childcount, TYPE_INTEGER, "number of servers connected"},
{prop_server + 18, "child", ef_server_child, TYPE_CLIENT, "connected clients"},
{NULL, "next", ef_server_next, TYPE_SERVER, "next"} {NULL, "next", ef_server_next, TYPE_SERVER, "next"}
}; };

View File

@ -579,7 +579,11 @@ void srvinit2(struct srvparam * srv, struct clientparam *param){
} }
if(srv->logtarget) srv->logtarget = (unsigned char *)mystrdup((char *)srv->logtarget); if(srv->logtarget) srv->logtarget = (unsigned char *)mystrdup((char *)srv->logtarget);
memcpy(&param->sincr, &srv->intsa, sizeof(param->sincr)); memcpy(&param->sincr, &srv->intsa, sizeof(param->sincr));
#ifndef NOIPV6
memcpy(&param->sinsr, (srv->family == 6 || srv->family == 64)? (void *)&srv->extsa6: (void *)&srv->extsa, sizeof(param->sinsl)); memcpy(&param->sinsr, (srv->family == 6 || srv->family == 64)? (void *)&srv->extsa6: (void *)&srv->extsa, sizeof(param->sinsl));
#else
memcpy(&param->sinsr, &srv->extsa, sizeof(param->sinsl));
#endif
} }
void srvfree(struct srvparam * srv){ void srvfree(struct srvparam * srv){

View File

@ -154,7 +154,11 @@ void * sockschild(struct clientparam* param) {
case 2: case 2:
case 3: case 3:
#ifndef NOIPV6
memcpy(&param->sinsl, *SAFAMILY(&param->req)==AF_INET6? (struct sockaddr *)&param->srv->extsa6:(struct sockaddr *)&param->srv->extsa, SASIZE(&param->req)); memcpy(&param->sinsl, *SAFAMILY(&param->req)==AF_INET6? (struct sockaddr *)&param->srv->extsa6:(struct sockaddr *)&param->srv->extsa, SASIZE(&param->req));
#else
memcpy(&param->sinsl, &param->srv->extsa, SASIZE(&param->req));
#endif
if(!*SAPORT(&param->sinsl))*SAPORT(&param->sinsl) = port; if(!*SAPORT(&param->sinsl))*SAPORT(&param->sinsl) = port;
if ((param->remsock=so._socket(*SAFAMILY(&param->req), command == 2? SOCK_STREAM:SOCK_DGRAM, command == 2?IPPROTO_TCP:IPPROTO_UDP)) == INVALID_SOCKET) {RETURN (11);} if ((param->remsock=so._socket(*SAFAMILY(&param->req), command == 2? SOCK_STREAM:SOCK_DGRAM, command == 2?IPPROTO_TCP:IPPROTO_UDP)) == INVALID_SOCKET) {RETURN (11);}
param->operation = command == 2?BIND:UDPASSOC; param->operation = command == 2?BIND:UDPASSOC;

View File

@ -71,7 +71,11 @@ void * udppmchild(struct clientparam* param) {
param->clisock = param->srv->srvsock; param->clisock = param->srv->srvsock;
#endif #endif
#ifndef NOIPV6
memcpy(&param->sinsl, *SAFAMILY(&param->req) == AF_INET? (struct sockaddr *)&param->srv->extsa : (struct sockaddr *)&param->srv->extsa6, SASIZE(&param->req)); memcpy(&param->sinsl, *SAFAMILY(&param->req) == AF_INET? (struct sockaddr *)&param->srv->extsa : (struct sockaddr *)&param->srv->extsa6, SASIZE(&param->req));
#else
memcpy(&param->sinsl, &param->srv->extsa, SASIZE(&param->req));
#endif
*SAPORT(&param->sinsl) = 0; *SAPORT(&param->sinsl) = 0;
if ((param->remsock=so._socket(*SAFAMILY(&param->sinsl), SOCK_DGRAM, IPPROTO_UDP)) == INVALID_SOCKET) {RETURN (11);} if ((param->remsock=so._socket(*SAFAMILY(&param->sinsl), SOCK_DGRAM, IPPROTO_UDP)) == INVALID_SOCKET) {RETURN (11);}
if(so._bind(param->remsock,(struct sockaddr *)&param->sinsl,sizeof(param->sinsl))) {RETURN (12);} if(so._bind(param->remsock,(struct sockaddr *)&param->sinsl,sizeof(param->sinsl))) {RETURN (12);}

View File

@ -1,2 +1,2 @@
#define VERSION "3proxy-0.8b-devel" #define VERSION "3proxy-0.8b-devel"
#define BUILDDATE "141109205515" #define BUILDDATE "141109215219"