diff --git a/src/socks.c b/src/socks.c index 899790a..cb71e0e 100644 --- a/src/socks.c +++ b/src/socks.c @@ -208,7 +208,7 @@ void * sockschild(struct clientparam* param) { *SAPORT(¶m->sinsl) = 0; if(so._bind(param->remsock,(struct sockaddr *)¶m->sinsl,SASIZE(¶m->sinsl)))RETURN (12); #if SOCKSTRACE > 0 -fprintf(stderr, "%hu binded to communicate with server\n", *SAPORT(¶m->sins)); +fprintf(stderr, "%hu bound to communicate with server\n", *SAPORT(¶m->sins)); fflush(stderr); #endif } @@ -331,6 +331,7 @@ fflush(stderr); param->sinsr = param->req; myfree(buf); if(!(buf = myalloc(LARGEBUFSIZE))) {RETURN(21);} + sin = param->sincr; for(;;){ fds[0].fd = param->remsock; @@ -387,10 +388,7 @@ fflush(stderr); sasize = sizeof(param->sinsr); if(len > (int)i){ - if(socksendto(param->remsock, (struct sockaddr *)¶m->sinsr, buf+i, len - i, conf.timeouts[SINGLEBYTE_L]*1000) <= 0){ - param->res = 467; - break; - } + socksendto(param->remsock, (struct sockaddr *)¶m->sinsr, buf+i, len - i, conf.timeouts[SINGLEBYTE_L]*1000); param->statscli64+=(len - i); param->nwrites++; #if SOCKSTRACE > 1 @@ -413,7 +411,7 @@ fflush(stderr); sasize = sizeof(param->sinsr); buf[0]=buf[1]=buf[2]=0; buf[3]=(*SAFAMILY(¶m->sinsl) == AF_INET)?1:4; - if((len = so._recvfrom(param->remsock, (char *)buf+6+SAADDRLEN(¶m->sinsl), 65535 - 10, 0, (struct sockaddr *)¶m->sinsr, &sasize)) <= 0) { + if((len = so._recvfrom(param->remsock, (char *)buf+6+SAADDRLEN(¶m->sinsl), 65535 - (6+SAADDRLEN(¶m->sinsl)), 0, (struct sockaddr *)¶m->sinsr, &sasize)) <= 0) { param->res = 468; break; } @@ -422,10 +420,7 @@ fflush(stderr); memcpy(buf+4, SAADDR(¶m->sinsr), SAADDRLEN(¶m->sinsr)); memcpy(buf+4+SAADDRLEN(¶m->sinsr), SAPORT(¶m->sinsr), 2); sasize = sizeof(sin); - if(socksendto(param->clisock, (struct sockaddr *)&sin, buf, len + 6 + SAADDRLEN(¶m->sinsr), conf.timeouts[SINGLEBYTE_L]*1000) <=0){ - param->res = 469; - break; - } + socksendto(param->clisock, (struct sockaddr *)&sin, buf, len + 6 + SAADDRLEN(¶m->sinsr), conf.timeouts[SINGLEBYTE_L]*1000); #if SOCKSTRACE > 1 fprintf(stderr, "UDP packet relayed to client from %hu size %d\n", ntohs(*SAPORT(¶m->sinsr)),