Răsfoiți Sursa

evapi: Removed cast of bind port to short, as this restricted ports to signed 16-bit int values (< 32768).

htons() takes unsigned 16-bit integer and returns the same. When this value was cast to (short), higher ports could not be used.
Alex Balashov 5 ani în urmă
părinte
comite
e9545ae1e4
2 a modificat fișierele cu 2 adăugiri și 2 ștergeri
  1. 1 1
      src/modules/evapi/evapi_dispatch.c
  2. 1 1
      src/modules/evapi/evapi_mod.c

+ 1 - 1
src/modules/evapi/evapi_dispatch.c

@@ -676,7 +676,7 @@ int evapi_run_dispatcher(char *laddr, int lport)
 
 	bzero(&evapi_srv_addr, sizeof(evapi_srv_addr));
 	evapi_srv_addr.sin_family = h->h_addrtype;
-	evapi_srv_addr.sin_port   = htons((short)lport);
+	evapi_srv_addr.sin_port   = htons(lport);
 	evapi_srv_addr.sin_addr  = *(struct in_addr*)h->h_addr;
 
 	/* Set SO_REUSEADDR option on listening socket so that we don't

+ 1 - 1
src/modules/evapi/evapi_mod.c

@@ -151,7 +151,7 @@ static int mod_init(void)
 		p = strchr(_evapi_bind_param, ':');
 		if(p!=NULL) {
 			*p++ = '\0';
-			_evapi_bind_port = (short)atoi(p);
+			_evapi_bind_port = atoi(p);
 			if (_evapi_bind_port <= 0) {
 				LM_ERR("invalid port: %d\n", _evapi_bind_port);
 				return -1;