diff --git a/src/auth.c b/src/auth.c index b740cb3..b077c85 100644 --- a/src/auth.c +++ b/src/auth.c @@ -10,7 +10,7 @@ int clientnegotiate(struct chain * redir, struct clientparam * param, struct sockaddr * addr, char * hostname){ - unsigned char *buf; + char *buf; char *username; int res; int len=0; @@ -393,8 +393,8 @@ int ACLmatches(struct ace* acentry, struct clientparam * param){ break; case 2: - lname = strlen((char *)hstentry->name); - lhost = strlen((char *)param->hostname); + lname = (int)strlen((char *)hstentry->name); + lhost = (int)strlen((char *)param->hostname); if(lhost > lname){ if(!strncasecmp((char *)param->hostname + (lhost - lname), (char *)hstentry->name, @@ -1170,7 +1170,7 @@ unsigned long udpresolve(int af, char * name, char * value, unsigned *retttl, st for(i=0; isinsl : &addr; sinsr = (param && !makeauth)? ¶m->sinsr : &addr; @@ -1221,11 +1221,11 @@ unsigned long udpresolve(int af, char * name, char * value, unsigned *retttl, st #ifdef TCP_NODELAY { int opt = 1; - setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char *)&opt, sizeof(opt)); + setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (void *)&opt, sizeof(opt)); } #endif } - len = (int)strlen((char *)name); + len = (int)strlen(name); serial = myrand(name,len); *(unsigned short*)buf = serial; /* query id */ @@ -1242,7 +1242,7 @@ unsigned long udpresolve(int af, char * name, char * value, unsigned *retttl, st memcpy(buf + 13, name, len); len += 13; buf[len] = 0; - for(s2 = buf + 12; (s1 = (char *)strchr((char *)s2 + 1, '.')); s2 = s1)*s2 = (char)((s1 - s2) - 1); + for(s2 = buf + 12; (s1 = strchr(s2 + 1, '.')); s2 = s1)*s2 = (char)(unsigned char)((s1 - s2) - 1); *s2 = (len - (int)(s2 - buf)) - 1; len++; buf[len++] = 0; diff --git a/src/authradius.c b/src/authradius.c index 1419b87..e2f7021 100644 --- a/src/authradius.c +++ b/src/authradius.c @@ -194,7 +194,7 @@ static int calc_replydigest(char *packet, char *original, const char *secret, in memcpy(calc_vector, packet + 4, AUTH_VECTOR_LEN); memcpy(packet + 4, original, AUTH_VECTOR_LEN); - secretlen = strlen(secret); + secretlen = (int)strlen(secret); memcpy(packet + len, secret, secretlen); md5_calc(calc_digest, (u_char *)packet, len + secretlen); @@ -212,7 +212,7 @@ static int rad_pwencode(char *passwd, int *pwlen, const char *secret, const char int i, n, secretlen; int len; - len = strlen(passwd); + len = (int)strlen(passwd); if (len > 128) len = 128; *pwlen = len; if (len % AUTH_PASS_LEN != 0) { @@ -222,7 +222,7 @@ static int rad_pwencode(char *passwd, int *pwlen, const char *secret, const char len = *pwlen = i; } - secretlen = strlen(secret); + secretlen = (int)strlen(secret); memcpy(buffer, secret, secretlen); memcpy(buffer + secretlen, vector, AUTH_VECTOR_LEN); md5_calc((u_char *)digest, buffer, secretlen + AUTH_VECTOR_LEN); @@ -325,7 +325,7 @@ static int radbuf(struct clientparam * param, unsigned char * inbuf, int auth, i /* Acct-Session-Id */ sprintf(buf, "%u.%u.%u", (unsigned)param->time_start, (unsigned)param->msec_start, (unsigned)param->threadid); - len = strlen(buf); + len = (int)strlen(buf); *ptr++ = PW_ACCT_SESSION_ID; *ptr++ = 2+len; memcpy(ptr, buf, len); @@ -365,7 +365,7 @@ static int radbuf(struct clientparam * param, unsigned char * inbuf, int auth, i /* NAS-Identifier */ if(conf.stringtable){ *ptr++ = PW_NAS_IDENTIFIER; - len = strlen(conf.stringtable[SERVICES+param->service]); + len = (int)strlen(conf.stringtable[SERVICES+param->service]); *ptr++ = (2 + len); memcpy(ptr, conf.stringtable[SERVICES+param->service], len); ptr += len; @@ -390,7 +390,7 @@ static int radbuf(struct clientparam * param, unsigned char * inbuf, int auth, i /* Called-Station-ID */ if(param->hostname){ *ptr++ = PW_CALLED_STATION_ID; - len = strlen(param->hostname); + len = (int)strlen(param->hostname); *ptr++ = (2 + len); memcpy(ptr, param->hostname, len); ptr += len; @@ -432,7 +432,7 @@ static int radbuf(struct clientparam * param, unsigned char * inbuf, int auth, i /* Username */ if(param->username){ - len = strlen(param->username); + len = (int)strlen(param->username); if(len>128)len=128; *ptr++ = PW_USER_NAME; *ptr++ = len + 2; @@ -475,7 +475,7 @@ static int radbuf(struct clientparam * param, unsigned char * inbuf, int auth, i } if(auth && param->password){ - len = strlen(param->password); + len = (int)strlen(param->password); if(len > 128) len = 128; *ptr++ = PW_PASSWORD; ptr++; @@ -493,7 +493,7 @@ static int radbuf(struct clientparam * param, unsigned char * inbuf, int auth, i packet.length = htons(total_length); if(!auth){ - len = strlen(radiussecret); + len = (int)strlen(radiussecret); memcpy(ptr,radiussecret,len); md5_calc(packet.vector, (u_char *)&packet, total_length + len); } diff --git a/src/base64.c b/src/base64.c index 000b29c..d7b7b8c 100644 --- a/src/base64.c +++ b/src/base64.c @@ -10,7 +10,7 @@ static const char base64digits[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -#define BAD 255 +#define BAD -1 static const char base64val[] = { BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, BAD,BAD,BAD,BAD, @@ -23,7 +23,7 @@ static const char base64val[] = { }; #define DECODE64(c) ((c > 32 && c<127)? base64val[(int)c] : BAD) -unsigned char* en64 (const char *in, char *out, int inlen) +char* en64 (const char *in, char *out, int inlen) { for (; inlen > 0; inlen -= 3, in+=3) { @@ -40,7 +40,7 @@ unsigned char* en64 (const char *in, char *out, int inlen) int de64 (const char *in, char *out, int maxlen) { int len = 0; - register unsigned char digit1, digit2, digit3, digit4; + register char digit1, digit2, digit3, digit4; if (in[0] == '+' && in[1] == ' ') in += 2; diff --git a/src/conf.c b/src/conf.c index ba30f90..f13163b 100644 --- a/src/conf.c +++ b/src/conf.c @@ -701,7 +701,7 @@ int scanipl(char *arg, struct iplist *dst){ for(i = addrlen; i>(nbytes + (nbits > 0)); i--){ ((char *)&dst->ip_from)[i-1] = 0x00; - ((char *)&dst->ip_to)[i-1] = 0xff; + ((char *)&dst->ip_to)[i-1] = (char)(unsigned char)0xff; } for(;nbits;nbits--){ ((char *)&dst->ip_from)[nbytes] &= ~(0x01<<(nbits-1)); diff --git a/src/datatypes.c b/src/datatypes.c index de87627..6fe326d 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -77,7 +77,7 @@ static void pr_sa(struct node *node, CBFUNC cbf, void*cb){ buf[1] = 0; inet_ntop(*SAFAMILY(node->value), SAADDR(node->value), buf+1, sizeof(buf)-10); sprintf(buf + strlen(buf), "]:%hu", (unsigned short)*SAPORT(node->value)); - if(node->value)(*cbf)(cb, buf, strlen(buf)); + if(node->value)(*cbf)(cb, buf, (int)strlen(buf)); #endif } diff --git a/src/dnspr.c b/src/dnspr.c index 916d7a7..a8a37e1 100644 --- a/src/dnspr.c +++ b/src/dnspr.c @@ -27,7 +27,7 @@ void * dnsprchild(struct clientparam* param) { int len; unsigned type=0; unsigned ttl; - unsigned char addr[16]; + char addr[16]; #ifdef _WIN32 unsigned long ul = 1; #endif @@ -83,7 +83,7 @@ void * dnsprchild(struct clientparam* param) { type = ((unsigned)buf[len+1])*256 + (unsigned)buf[len+2]; if((type==0x01 || type==0x1c) && !param->srv->singlepacket){ - ip = udpresolve((type==0x1c)?AF_INET6:AF_INET, (unsigned char *)host, addr, &ttl, param, 0); + ip = udpresolve((type==0x1c)?AF_INET6:AF_INET, host, addr, &ttl, param, 0); } len+=5; @@ -170,7 +170,7 @@ void * dnsprchild(struct clientparam* param) { if(us > 4096) RETURN(833); buf += 2; len -= 2; - if(len < us) len += sockgetlinebuf(param, SERVER, buf+len, us - len, 0, conf.timeouts[SINGLEBYTE_L]); + if(len < us) len += sockgetlinebuf(param, SERVER, (char *)buf+len, us - len, 0, conf.timeouts[SINGLEBYTE_L]); if(len != us) RETURN(832); } if(buf[6] || buf[7]){ @@ -198,7 +198,7 @@ CLEANRET: if((ip && type == 0x01) || type == 0x1c){ myinet_ntop(type == 0x01? AF_INET:AF_INET6, addr, (char *)buf+strlen((char *)buf), 64); } - dolog(param, buf); + dolog(param, (char *)buf); } if(bbuf)myfree(bbuf); if(host)myfree(host); diff --git a/src/log.c b/src/log.c index 182c484..8302af8 100644 --- a/src/log.c +++ b/src/log.c @@ -350,7 +350,7 @@ void dolog(struct clientparam * param, const char *s){ static int init = 0; if(!param || !param->srv){ - stdlog(s, strlen(s), &errlogger); + stdlog(s, (int)strlen(s), &errlogger); return; } if(conf.prelog)conf.prelog(param); @@ -360,9 +360,9 @@ void dolog(struct clientparam * param, const char *s){ if(!param->srv->log->logfunc) { int slen =0, hlen=0, ulen=0; - slen = s?strlen(s)+1 : 0; - hlen = param->hostname? strlen(param->hostname)+1 : 0; - ulen = param->username? strlen(param->username)+1 : 0; + slen = s?(int)strlen(s)+1 : 0; + hlen = param->hostname? (int)strlen(param->hostname)+1 : 0; + ulen = param->username? (int)strlen(param->username)+1 : 0; if(!(evt = malloc(sizeof(struct logevent) + slen + ulen + hlen))) return; evt->inbuf = 0; evt->param=param; @@ -502,7 +502,7 @@ char * dologname (char *buf, int bufsize, char *name, const char *ext, ROTATION ts = localtime(&t); if(strchr((char *)name, '%')){ - dobuf2(&logparam, buf, bufsize - (ext?strlen(ext):0), NULL, NULL, ts, (char *)name); + dobuf2(&logparam, buf, bufsize - (ext?(int)strlen(ext):0), NULL, NULL, ts, (char *)name); } else switch(lt){ case NONE: @@ -875,12 +875,12 @@ static void stdlogrotate(struct LOGGER *logger){ strcat((char *)tmpbuf, " "); if(!strcmp((char *)conf.archiver[i], "%A")){ strcat((char *)tmpbuf, "\""); - dologname (tmpbuf + strlen((char *)tmpbuf), sizeof(tmpbuf) - (strlen((char *)tmpbuf) + 1), logger->selector, conf.archiver[1], logger->rotate, (logger->rotated - t)); + dologname (tmpbuf + strlen((char *)tmpbuf), (int)(sizeof(tmpbuf) - (strlen((char *)tmpbuf) + 1)), logger->selector, conf.archiver[1], logger->rotate, (logger->rotated - t)); strcat((char *)tmpbuf, "\""); } else if(!strcmp((char *)conf.archiver[i], "%F")){ strcat((char *)tmpbuf, "\""); - dologname (tmpbuf+strlen((char *)tmpbuf), sizeof(tmpbuf) - (strlen((char *)tmpbuf) + 1), logger->selector, NULL, logger->rotate, (logger->rotated-t)); + dologname (tmpbuf+strlen((char *)tmpbuf), (int)(sizeof(tmpbuf) - (strlen((char *)tmpbuf) + 1)), logger->selector, NULL, logger->rotate, (logger->rotated-t)); strcat((char *)tmpbuf, "\""); } else @@ -1081,4 +1081,4 @@ static void sqlclose(struct LOGGER *logger){ } -#endif \ No newline at end of file +#endif diff --git a/src/mycrypt.c b/src/mycrypt.c index dd777d2..5bc5c94 100644 --- a/src/mycrypt.c +++ b/src/mycrypt.c @@ -42,7 +42,7 @@ char * ntpwdhash (char *szHash, const char *szPassword, int ctohex) * NT passwords are unicode. Convert plain text password * to unicode by inserting a zero every other byte */ - nPasswordLen = (int)strlen((char *)szPassword); + nPasswordLen = (int)strlen(szPassword); if(nPasswordLen > 255)nPasswordLen = 255; for (i = 0; i < nPasswordLen; i++) { szUnicodePass[i << 1] = szPassword[i]; @@ -51,8 +51,8 @@ char * ntpwdhash (char *szHash, const char *szPassword, int ctohex) /* Encrypt Unicode password to a 16-byte MD4 hash */ MD4Init(&ctx); - MD4Update(&ctx, szUnicodePass, (nPasswordLen<<1)); - MD4Final(szUnicodePass, &ctx); + MD4Update(&ctx, (unsigned char*)szUnicodePass, (nPasswordLen<<1)); + MD4Final((unsigned char*)szUnicodePass, &ctx); if (ctohex){ tohex(szUnicodePass, szHash, 16); } @@ -64,8 +64,8 @@ char * ntpwdhash (char *szHash, const char *szPassword, int ctohex) char * mycrypt(const char *pw, const char *salt, char *passwd){ const char *ep; - if(salt[0] == '$' && salt[1] == '1' && salt[2] == '$' && (ep = (char *)strchr((char *)salt+3, '$'))) { - static char *magic = (char *)"$1$"; + if(salt[0] == '$' && salt[1] == '1' && salt[2] == '$' && (ep = strchr(salt+3, '$'))) { + static char *magic = "$1$"; char *p; const char *sp; char final[MD5_SIZE]; @@ -82,39 +82,39 @@ char * mycrypt(const char *pw, const char *salt, char *passwd){ MD5Init(&ctx); /* The password first, since that is what is most unknown */ - MD5Update(&ctx,pw,strlen((char *)pw)); + MD5Update(&ctx,(unsigned char*)pw,strlen(pw)); /* Then our magic string */ - MD5Update(&ctx,magic,strlen((char *)magic)); + MD5Update(&ctx,(unsigned char*)magic,strlen(magic)); /* Then the raw salt */ - MD5Update(&ctx,sp,sl); + MD5Update(&ctx,(unsigned char*)sp,sl); /* Then just as many characters of the MD5(pw,salt,pw) */ MD5Init(&ctx1); - MD5Update(&ctx1,pw,strlen((char *)pw)); - MD5Update(&ctx1,sp,sl); - MD5Update(&ctx1,pw,strlen((char *)pw)); - MD5Final(final,&ctx1); - for(pl = (int)strlen((char *)pw); pl > 0; pl -= MD5_SIZE) - MD5Update(&ctx,final,pl>MD5_SIZE ? MD5_SIZE : pl); + MD5Update(&ctx1,(unsigned char*)pw,strlen(pw)); + MD5Update(&ctx1,(unsigned char*)sp,sl); + MD5Update(&ctx1,(unsigned char*)pw,strlen(pw)); + MD5Final((unsigned char*)final,&ctx1); + for(pl = (int)strlen(pw); pl > 0; pl -= MD5_SIZE) + MD5Update(&ctx,(unsigned char*)final,pl>MD5_SIZE ? MD5_SIZE : pl); /* Don't leave anything around in vm they could use. */ memset(final,0,sizeof final); /* Then something really weird... */ - for (i = (int)strlen((char *)pw); i ; i >>= 1) + for (i = (int)strlen(pw); i ; i >>= 1) if(i&1) - MD5Update(&ctx, final, 1); + MD5Update(&ctx, (unsigned char*)final, 1); else - MD5Update(&ctx, pw, 1); + MD5Update(&ctx, (unsigned char*)pw, 1); /* Now make the output string */ - strcpy((char *)passwd,(char *)magic); - strncat((char *)passwd,(char *)sp,sl); - strcat((char *)passwd,"$"); + strcpy(passwd,magic); + strncat(passwd,sp,sl); + strcat(passwd,"$"); - MD5Final(final,&ctx); + MD5Final((unsigned char*)final,&ctx); /* * and now, just to make sure things don't run too fast @@ -124,24 +124,24 @@ char * mycrypt(const char *pw, const char *salt, char *passwd){ for(i=0;i<1000;i++) { MD5Init(&ctx1); if(i & 1) - MD5Update(&ctx1,pw,strlen((char *)pw)); + MD5Update(&ctx1,(unsigned char*)pw,strlen(pw)); else - MD5Update(&ctx1,final,MD5_SIZE); + MD5Update(&ctx1,(unsigned char*)final,MD5_SIZE); if(i % 3) - MD5Update(&ctx1,sp,sl); + MD5Update(&ctx1,(unsigned char*)sp,sl); if(i % 7) - MD5Update(&ctx1,pw,strlen((char *)pw)); + MD5Update(&ctx1,(unsigned char*)pw,strlen(pw)); if(i & 1) - MD5Update(&ctx1,final,MD5_SIZE); + MD5Update(&ctx1,(unsigned char*)final,MD5_SIZE); else - MD5Update(&ctx1,pw,strlen((char *)pw)); - MD5Final(final,&ctx1); + MD5Update(&ctx1,(unsigned char*)pw,strlen(pw)); + MD5Final((unsigned char*)final,&ctx1); } - p = passwd + strlen((char *)passwd); + p = passwd + strlen(passwd); l = (final[ 0]<<16) | (final[ 6]<<8) | final[12]; _crypt_to64(p,l,4); p += 4; @@ -185,12 +185,12 @@ int main(int argc, char* argv[]){ return 1; } if(argc == 2) { - printf("NT:%s\n", ntpwdhash(buf, (char *)argv[1], 1)); + printf("NT:%s\n", ntpwdhash(buf, argv[1], 1)); } else { - i = (int)strlen((char *)argv[1]); + i = (int)strlen(argv[1]); if (i > 64) argv[1][64] = 0; - sprintf((char *)buf, "$1$%s$", argv[1]); + sprintf(buf, "$1$%s$", argv[1]); printf("CR:%s\n", mycrypt(argv[2], buf, buf+256)); } return 0; diff --git a/src/proxy.c b/src/proxy.c index 77db6ba..720aa58 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -159,7 +159,7 @@ void decodeurl(char *s, int allowcr){ if(allowcr && u != '\r')*d++ = u; else if (u != '\r' && u != '\n') { if (u == '\"' || u == '\\') *d++ = '\\'; - else if (u == 255) *d++ = 255; + else if (u == 255) *d++ = (char)(unsigned char)255; *d++ = u; } s+=3; @@ -187,7 +187,7 @@ void file2url(char *sb, char *buf, unsigned bufsize, int * inbuf, int skip255){ memcpy(buf+*inbuf, "%5C%22", 6); (*inbuf)+=6; } - else if(skip255 && *sb == 255 && *(sb+1) == 255) { + else if(skip255 && *sb == (char)(unsigned char)255 && *(sb+1) == (char)(unsigned char)255) { memcpy(buf+*inbuf, "%ff", 3); (*inbuf)+=3; sb++; @@ -780,7 +780,7 @@ for(;;){ inbuf = 0; #ifndef ANONYMOUS if(!anonymous){ - int len = strlen((char *)buf); + int len = (int)strlen((char *)buf); len += sprintf((char*)buf + len, "Forwarded: for="); if(*SAFAMILY(¶m->sincr) == AF_INET6) len += sprintf((char*)buf + len, "\"["); len += myinet_ntop(*SAFAMILY(¶m->sincr), SAADDR(¶m->sincr), (char *)buf + len, 128); diff --git a/src/socks.c b/src/socks.c index 6f60b60..6069f19 100644 --- a/src/socks.c +++ b/src/socks.c @@ -10,7 +10,7 @@ #define RETURN(xxx) { param->res = xxx; goto CLEANRET; } -unsigned char * commands[] = {(unsigned char *)"UNKNOWN", (unsigned char *)"CONNECT", (unsigned char *)"BIND", (unsigned char *)"UDPMAP"}; +char * commands[] = {"UNKNOWN", "CONNECT", "BIND", "UDPMAP"}; #define BUFSIZE 1024 #define LARGEBUFSIZE 67000 @@ -63,11 +63,11 @@ void * sockschild(struct clientparam* param) { if ((i = sockgetcharcli(param, conf.timeouts[SINGLEBYTE_S], 0)) == EOF) {RETURN(451);} if (i && (unsigned)(res = sockgetlinebuf(param, CLIENT, buf, i, 0, conf.timeouts[STRING_S])) != i){RETURN(441);}; buf[i] = 0; - if(!param->username)param->username = (unsigned char *)mystrdup((char *)buf); + if(!param->username)param->username = mystrdup(buf); if ((i = sockgetcharcli(param, conf.timeouts[SINGLEBYTE_S], 0)) == EOF) {RETURN(445);} if (i && (unsigned)(res = sockgetlinebuf(param, CLIENT, buf, i, 0, conf.timeouts[STRING_S])) != i){RETURN(441);}; buf[i] = 0; - if(!param->password)param->password = (unsigned char *)mystrdup((char *)buf); + if(!param->password)param->password = mystrdup(buf); buf[0] = 1; buf[1] = 0; if(socksend(param->clisock, buf, 2, conf.timeouts[STRING_S])!=2){RETURN(481);} @@ -123,7 +123,7 @@ void * sockschild(struct clientparam* param) { if(command == 1 && SAISNULL(¶m->req)) { RETURN(431); } - myinet_ntop(*SAFAMILY(¶m->sinsr), SAADDR(¶m->sinsr), (char *)buf, 64); + myinet_ntop(*SAFAMILY(¶m->sinsr), SAADDR(¶m->sinsr), buf, 64); break; case 3: if ((size = sockgetcharcli(param, conf.timeouts[SINGLEBYTE_S], 0)) == EOF) {RETURN(451);} /* nmethods */ @@ -139,7 +139,7 @@ void * sockschild(struct clientparam* param) { RETURN(997); } if(param->hostname)myfree(param->hostname); - param->hostname = (unsigned char *)mystrdup((char *)buf); + param->hostname = mystrdup(buf); if (ver == 5) { if ((res = sockgetcharcli(param, conf.timeouts[SINGLEBYTE_S], 0)) == EOF) {RETURN(441);} buf[0] = (unsigned char) res; @@ -151,13 +151,13 @@ void * sockschild(struct clientparam* param) { else { sockgetlinebuf(param, CLIENT, buf, BUFSIZE - 1, 0, conf.timeouts[STRING_S]); buf[127] = 0; - if(param->srv->needuser && *buf && !param->username)param->username = (unsigned char *)mystrdup((char *)buf); + if(param->srv->needuser && *buf && !param->username)param->username = mystrdup(buf); if(!memcmp(SAADDR(¶m->req), "\0\0\0", 3)){ param->service = S_SOCKS45; sockgetlinebuf(param, CLIENT, buf, BUFSIZE - 1, 0, conf.timeouts[STRING_S]); buf[127] = 0; if(param->hostname)myfree(param->hostname); - param->hostname = (unsigned char *)mystrdup((char *)buf); + param->hostname = mystrdup(buf); if(!getip46(param->srv->family, buf, (struct sockaddr *) ¶m->req)) RETURN(100); param->sinsr = param->req; } @@ -185,11 +185,11 @@ void * sockschild(struct clientparam* param) { #ifdef SO_REUSEADDR opt = 1; - so._setsockopt(param->remsock, SOL_SOCKET, SO_REUSEADDR, (unsigned char *)&opt, sizeof(int)); + so._setsockopt(param->remsock, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)); #endif #ifdef SO_REUSEPORT opt = 1; - so._setsockopt(param->remsock, SOL_SOCKET, SO_REUSEPORT, (unsigned char *)&opt, sizeof(int)); + so._setsockopt(param->remsock, SOL_SOCKET, SO_REUSEPORT, &opt, sizeof(int)); #endif } #endif