mirror of
https://github.com/3proxy/3proxy.git
synced 2026-06-13 11:00:11 +08:00
Compare commits
5 Commits
ff7f4b8ea6
...
0d7f05b05b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d7f05b05b | ||
|
|
750bb38907 | ||
|
|
46cff56cf4 | ||
|
|
d0d3b90226 | ||
|
|
7a139e59a5 |
@ -118,7 +118,6 @@ unsigned char * mycrypt(const unsigned char *pw, const unsigned char *salt, unsi
|
|||||||
EVP_DigestUpdate(ctx1,sp,sl);
|
EVP_DigestUpdate(ctx1,sp,sl);
|
||||||
EVP_DigestUpdate(ctx1,pw,strlen((char *)pw));
|
EVP_DigestUpdate(ctx1,pw,strlen((char *)pw));
|
||||||
EVP_DigestFinal_ex(ctx1,final,&len);
|
EVP_DigestFinal_ex(ctx1,final,&len);
|
||||||
EVP_MD_CTX_free(ctx1);
|
|
||||||
for(pl = (int)strlen((char *)pw); pl > 0; pl -= MD5_SIZE)
|
for(pl = (int)strlen((char *)pw); pl > 0; pl -= MD5_SIZE)
|
||||||
EVP_DigestUpdate(ctx,final,pl>MD5_SIZE ? MD5_SIZE : pl);
|
EVP_DigestUpdate(ctx,final,pl>MD5_SIZE ? MD5_SIZE : pl);
|
||||||
|
|
||||||
@ -142,7 +141,7 @@ unsigned char * mycrypt(const unsigned char *pw, const unsigned char *salt, unsi
|
|||||||
* need 30 seconds to build a 1000 entry dictionary...
|
* need 30 seconds to build a 1000 entry dictionary...
|
||||||
*/
|
*/
|
||||||
for(i=0;i<1000;i++) {
|
for(i=0;i<1000;i++) {
|
||||||
ctx1 = EVP_MD_CTX_new();
|
EVP_MD_CTX_reset(ctx1);
|
||||||
EVP_DigestInit_ex(ctx1, md5, NULL);
|
EVP_DigestInit_ex(ctx1, md5, NULL);
|
||||||
if(i & 1)
|
if(i & 1)
|
||||||
EVP_DigestUpdate(ctx1,pw,strlen((char *)pw));
|
EVP_DigestUpdate(ctx1,pw,strlen((char *)pw));
|
||||||
@ -160,12 +159,8 @@ unsigned char * mycrypt(const unsigned char *pw, const unsigned char *salt, unsi
|
|||||||
else
|
else
|
||||||
EVP_DigestUpdate(ctx1,pw,strlen((char *)pw));
|
EVP_DigestUpdate(ctx1,pw,strlen((char *)pw));
|
||||||
EVP_DigestFinal_ex(ctx1,final,&len);
|
EVP_DigestFinal_ex(ctx1,final,&len);
|
||||||
EVP_MD_CTX_free(ctx1);
|
|
||||||
}
|
}
|
||||||
|
EVP_MD_CTX_free(ctx1);
|
||||||
|
|
||||||
/* Don't leave anything around in vm they could use. */
|
|
||||||
memset(final,0,sizeof final);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -194,7 +194,6 @@ static int h_proxy(int argc, unsigned char ** argv){
|
|||||||
childdef.port = 3128;
|
childdef.port = 3128;
|
||||||
childdef.isudp = 0;
|
childdef.isudp = 0;
|
||||||
childdef.service = S_PROXY;
|
childdef.service = S_PROXY;
|
||||||
childdef.helpmessage = " -n - no NTLM support\n";
|
|
||||||
#ifdef NOIPV6
|
#ifdef NOIPV6
|
||||||
if(!resolvfunc || (resolvfunc == myresolver && !dns_table.poolsize)){
|
if(!resolvfunc || (resolvfunc == myresolver && !dns_table.poolsize)){
|
||||||
fprintf(stderr, "[line %d] Warning: no nserver/nscache configured, proxy may run very slow\n", linenum);
|
fprintf(stderr, "[line %d] Warning: no nserver/nscache configured, proxy may run very slow\n", linenum);
|
||||||
@ -227,7 +226,6 @@ static int h_proxy(int argc, unsigned char ** argv){
|
|||||||
childdef.port = 1080;
|
childdef.port = 1080;
|
||||||
childdef.isudp = 0;
|
childdef.isudp = 0;
|
||||||
childdef.service = S_SOCKS;
|
childdef.service = S_SOCKS;
|
||||||
childdef.helpmessage = " -n - no NTLM support\n";
|
|
||||||
#ifdef NOIPV6
|
#ifdef NOIPV6
|
||||||
if(!resolvfunc || (resolvfunc == myresolver && !dns_table.poolsize)){
|
if(!resolvfunc || (resolvfunc == myresolver && !dns_table.poolsize)){
|
||||||
fprintf(stderr, "[line %d] Warning: no nserver/nscache configured, socks may run very slow\n", linenum);
|
fprintf(stderr, "[line %d] Warning: no nserver/nscache configured, socks may run very slow\n", linenum);
|
||||||
|
|||||||
@ -417,6 +417,10 @@ for(;;){
|
|||||||
c = *se;
|
c = *se;
|
||||||
*se = 0;
|
*se = 0;
|
||||||
}
|
}
|
||||||
|
if(param->hostname && (!*param->hostname || isnumber(param->hostname[strlen((char *)param->hostname) - 1]))){
|
||||||
|
free(param->hostname);
|
||||||
|
param->hostname = NULL;
|
||||||
|
}
|
||||||
if(!param->hostname){
|
if(!param->hostname){
|
||||||
if(parsehostname((char *)sb, param, 80)) RETURN(100);
|
if(parsehostname((char *)sb, param, 80)) RETURN(100);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -456,12 +456,12 @@ int MODULEMAINFUNC (int argc, char** argv){
|
|||||||
else if(argv[i][3] == 'i') getip46(46, (unsigned char *)argv[i]+3, (struct sockaddr *)&srv.intNat);
|
else if(argv[i][3] == 'i') getip46(46, (unsigned char *)argv[i]+3, (struct sockaddr *)&srv.intNat);
|
||||||
else getip46(46, (unsigned char *)argv[i]+2, (struct sockaddr *)&srv.extNat);
|
else getip46(46, (unsigned char *)argv[i]+2, (struct sockaddr *)&srv.extNat);
|
||||||
break;
|
break;
|
||||||
#ifdef __linux__
|
|
||||||
case 'n':
|
case 'n':
|
||||||
|
#ifdef __linux__
|
||||||
if(argv[i][2] == 'i') { if(srv.inetns) free(srv.inetns); srv.inetns = strdup(argv[i] + 3); }
|
if(argv[i][2] == 'i') { if(srv.inetns) free(srv.inetns); srv.inetns = strdup(argv[i] + 3); }
|
||||||
else if(argv[i][2] == 'e') { if(srv.onetns) free(srv.onetns); srv.onetns = strdup(argv[i] + 3); }
|
else if(argv[i][2] == 'e') { if(srv.onetns) free(srv.onetns); srv.onetns = strdup(argv[i] + 3); }
|
||||||
break;
|
|
||||||
#endif
|
#endif
|
||||||
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
*SAPORT(&srv.intsa) = htons(atoi(argv[i]+2));
|
*SAPORT(&srv.intsa) = htons(atoi(argv[i]+2));
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -111,6 +111,11 @@ int udpsockmap(struct clientparam *param, int timeo)
|
|||||||
memcmp(SAADDR(&sin), SAADDR(¶m->sincr), SAADDRLEN(&sin)))
|
memcmp(SAADDR(&sin), SAADDR(¶m->sincr), SAADDRLEN(&sin)))
|
||||||
continue;
|
continue;
|
||||||
if (firstpacket) {
|
if (firstpacket) {
|
||||||
|
if (!SAISNULL(¶m->req) && *SAPORT(¶m->req) &&
|
||||||
|
SAADDRLEN(¶m->req) == SAADDRLEN(&sin) &&
|
||||||
|
!memcmp(SAADDR(¶m->req), SAADDR(&sin), SAADDRLEN(¶m->req)) &&
|
||||||
|
memcmp(SAPORT(¶m->req), SAPORT(&sin), 2))
|
||||||
|
continue;
|
||||||
param->sincr = sin;
|
param->sincr = sin;
|
||||||
firstpacket = 0;
|
firstpacket = 0;
|
||||||
} else if (memcmp(SAPORT(&sin), SAPORT(¶m->sincr), 2)) {
|
} else if (memcmp(SAPORT(&sin), SAPORT(¶m->sincr), 2)) {
|
||||||
@ -184,13 +189,6 @@ int udpsockmap(struct clientparam *param, int timeo)
|
|||||||
memcmp(SAPORT(&from), SAPORT(¶m->sinsr), 2))
|
memcmp(SAPORT(&from), SAPORT(¶m->sinsr), 2))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (!SAISNULL(¶m->req) && *SAPORT(¶m->req)) {
|
|
||||||
if (SAADDRLEN(&from) != SAADDRLEN(¶m->req) ||
|
|
||||||
memcmp(SAADDR(&from), SAADDR(¶m->req), SAADDRLEN(&from)) ||
|
|
||||||
memcmp(SAPORT(&from), SAPORT(¶m->req), 2))
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
param->statssrv64 += len;
|
param->statssrv64 += len;
|
||||||
param->nreads++;
|
param->nreads++;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user