Browse Source

Use SASIZE() instead of sizeof() in bind() for FreeBSD compatibility

z3APA3A 10 years ago
parent
commit
4af5f2fde7
7 changed files with 11 additions and 11 deletions
  1. 1 1
      src/auth.c
  2. 2 2
      src/common.c
  3. 2 2
      src/dnspr.c
  4. 1 1
      src/ftppr.c
  5. 2 2
      src/proxymain.c
  6. 1 1
      src/socks.c
  7. 2 2
      src/udppm.c

+ 1 - 1
src/auth.c

@@ -1061,7 +1061,7 @@ unsigned long udpresolve(int af, unsigned char * name, unsigned char * value, un
 			*SAFAMILY(sinsl) = *SAFAMILY(&nservers[i].addr);
 		}
 		if((sock=so._socket(SASOCK(sinsl), usetcp?SOCK_STREAM:SOCK_DGRAM, usetcp?IPPROTO_TCP:IPPROTO_UDP)) == INVALID_SOCKET) break;
-		if(so._bind(sock,sinsl,sizeof(addr))){
+		if(so._bind(sock,sinsl,SASIZE(sinsl))){
 			so._shutdown(sock, SHUT_RDWR);
 			so._closesocket(sock);
 			break;

+ 2 - 2
src/common.c

@@ -668,9 +668,9 @@ int doconnect(struct clientparam * param){
 #endif
 		memcpy(&param->sinsl, &param->srv->extsa, sizeof(param->srv->extsa));
 	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, SASIZE(&param->sinsl))==-1) {
 		*SAPORT(&param->sinsl) = 0;
-		if(so._bind(param->remsock, (struct sockaddr*)&param->sinsl, sizeof(param->sinsl))==-1) {
+		if(so._bind(param->remsock, (struct sockaddr*)&param->sinsl, SASIZE(&param->sinsl))==-1) {
 			return 12;
 		}
 	}

+ 2 - 2
src/dnspr.c

@@ -48,7 +48,7 @@ void * dnsprchild(struct clientparam* param) {
 	}
 	ioctlsocket(param->clisock, FIONBIO, &ul);
 	if(so._setsockopt(param->clisock, SOL_SOCKET, SO_REUSEADDR, (unsigned char *)&ul, sizeof(int))) {RETURN(820);};
-	if(so._bind(param->clisock,(struct sockaddr *)&param->sincl,sizeof(param->sincl))) {
+	if(so._bind(param->clisock,(struct sockaddr *)&param->sincl,SASIZE(&param->sincl))) {
 		RETURN(822);
 	}
 
@@ -135,7 +135,7 @@ void * dnsprchild(struct clientparam* param) {
 	}
 	memset(&param->sinsl, 0, sizeof(param->sinsl));
 	*SAFAMILY(&param->sinsl) = *SAFAMILY(&nservers[0].addr);
-	if(so._bind(param->remsock,(struct sockaddr *)&param->sinsl,sizeof(param->sinsl))) {
+	if(so._bind(param->remsock,(struct sockaddr *)&param->sinsl,SASIZE(&param->sinsl))) {
 		RETURN(819);
 	}
 	memcpy(&param->sinsr, &nservers[0].addr, sizeof(param->sinsr));

+ 1 - 1
src/ftppr.c

@@ -121,7 +121,7 @@ void * ftpprchild(struct clientparam* param) {
 		if ((clidatasock=socket(SASOCK(&param->sincl), SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) {RETURN(821);}
 		sasize = sizeof(param->sincl);
 		*SAPORT(&param->sincl) = 0;
-		if(so._bind(clidatasock, (struct sockaddr *)&param->sincl, sasize)){RETURN(822);}
+		if(so._bind(clidatasock, (struct sockaddr *)&param->sincl, SASIZE(&param->sincl))){RETURN(822);}
 		if (pasv) {
 			if(so._listen(clidatasock, 1)) {RETURN(823);}
 			if(so._getsockname(clidatasock, (struct sockaddr *)&param->sincl, &sasize)){RETURN(824);}

+ 2 - 2
src/proxymain.c

@@ -444,7 +444,7 @@ int MODULEMAINFUNC (int argc, char** argv){
 #endif
 	}
 	size = sizeof(srv.intsa);
-	for(sleeptime = SLEEPTIME * 100; so._bind(sock, (struct sockaddr*)&srv.intsa, size)==-1; usleep(sleeptime)) {
+	for(sleeptime = SLEEPTIME * 100; so._bind(sock, (struct sockaddr*)&srv.intsa, SASIZE(&srv.intsa))==-1; usleep(sleeptime)) {
 		sprintf((char *)buf, "bind(): %s", strerror(errno));
 		if(!srv.silent)(*srv.logfunc)(&defparam, buf);	
 		sleeptime = (sleeptime<<1);	
@@ -481,7 +481,7 @@ int MODULEMAINFUNC (int argc, char** argv){
 	so._setsockopt(srv.cbsock, SOL_SOCKET, SO_REUSEPORT, (unsigned char *)&opt, sizeof(int));
 #endif
 
-	if(so._bind(srv.cbsock, (struct sockaddr*)&cbsa, sizeof(cbsa))==-1) {
+	if(so._bind(srv.cbsock, (struct sockaddr*)&cbsa, SASIZE(&cbsa))==-1) {
 		(*srv.logfunc)(&defparam, "Failed to bind connect back socket");
 		return -7;
 	}

+ 1 - 1
src/socks.c

@@ -206,7 +206,7 @@ fflush(stderr);
 		if(param->clisock == INVALID_SOCKET) {RETURN(11);}
 		memcpy(&sin, &param->sincl, sizeof(&sin));
 		*SAPORT(&sin) = 0;
-		if(so._bind(param->clisock,(struct sockaddr *)&sin,sizeof(sin))) {RETURN (12);}
+		if(so._bind(param->clisock,(struct sockaddr *)&sin,SASIZE(&sin))) {RETURN (12);}
 #if SOCKSTRACE > 0
 fprintf(stderr, "%hu binded to communicate with client\n",
 			ntohs(*SAPORT(&sin))

+ 2 - 2
src/udppm.c

@@ -63,7 +63,7 @@ void * udppmchild(struct clientparam* param) {
 	ioctlsocket(param->clisock, FIONBIO, &ul);
 	size = sizeof(param->sinsl);
 	if(so._getsockname(param->srv->srvsock, (struct sockaddr *)&param->sinsl, &size)) {RETURN(21);};
-	if(so._bind(param->clisock,(struct sockaddr *)&param->sinsl,sizeof(struct sockaddr_in))) {
+	if(so._bind(param->clisock,(struct sockaddr *)&param->sinsl,SASIZE(&param->sinsl))) {
 		RETURN(822);
 	}
 #else
@@ -77,7 +77,7 @@ void * udppmchild(struct clientparam* param) {
 #endif
  *SAPORT(&param->sinsl) = 0;
  if ((param->remsock=so._socket(SASOCK(&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,SASIZE(&param->sinsl))) {RETURN (12);}
 #ifdef _WIN32
 	ioctlsocket(param->remsock, FIONBIO, &ul);
 #else