فهرست منبع

Fixes for NOIPV6

Fixes to compile without IPv6 support
z3APA3A 11 سال پیش
والد
کامیت
b5bcb44e27
6فایلهای تغییر یافته به همراه41 افزوده شده و 15 حذف شده
  1. 12 2
      src/common.c
  2. 15 11
      src/datatypes.c
  3. 4 0
      src/proxymain.c
  4. 5 1
      src/socks.c
  5. 4 0
      src/udppm.c
  6. 1 1
      src/version.h

+ 12 - 2
src/common.c

@@ -618,12 +618,22 @@ int doconnect(struct clientparam * param){
 	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);}
 	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));
+#endif
 	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(*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));
+#endif
 		if(so._bind(param->remsock, (struct sockaddr*)&param->sinsl, sizeof(param->sinsl))==-1) {
 			return 12;
 		}

+ 15 - 11
src/datatypes.c

@@ -568,9 +568,11 @@ static void * ef_server_extsa(struct node * node){
 	return &((struct srvparam *)node->value) -> extsa;
 }
 
+#ifndef NOIPV6
 static void * ef_server_extsa6(struct node * node){
 	return &((struct srvparam *)node->value) -> extsa6;
 }
+#endif
 
 static void * ef_server_acl(struct node * node){
 	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 + 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 + 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 + 8, "auth", ef_server_auth, TYPE_STRING, "service authentication type"},
-	{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"},
+#endif
 	{NULL, "next", ef_server_next, TYPE_SERVER, "next"}
 };
 

+ 4 - 0
src/proxymain.c

@@ -579,7 +579,11 @@ void srvinit2(struct srvparam * srv, struct clientparam *param){
  }
  if(srv->logtarget) srv->logtarget = (unsigned char *)mystrdup((char *)srv->logtarget);
  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));
+#else
+ memcpy(&param->sinsr, &srv->extsa, sizeof(param->sinsl));
+#endif
 }
 
 void srvfree(struct srvparam * srv){

+ 5 - 1
src/socks.c

@@ -153,8 +153,12 @@ void * sockschild(struct clientparam* param) {
 	 break;
  	case 2:
 	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)); 
+#else
+	 memcpy(&param->sinsl, &param->srv->extsa, SASIZE(&param->req)); 
+#endif
 	 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);}
 	 param->operation = command == 2?BIND:UDPASSOC;

+ 4 - 0
src/udppm.c

@@ -71,7 +71,11 @@ void * udppmchild(struct clientparam* param) {
 	param->clisock = param->srv->srvsock;
 #endif
 
+#ifndef NOIPV6
  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;
  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);}

+ 1 - 1
src/version.h

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