mirror of
https://github.com/hufrea/byedpi.git
synced 2024-11-26 08:45:32 +03:00
Minor changes
This commit is contained in:
parent
fde79cf591
commit
86d725ed66
1 changed files with 13 additions and 13 deletions
26
proxy.c
26
proxy.c
|
@ -130,18 +130,18 @@ int auth_socks5(int fd, char *buffer, ssize_t n)
|
||||||
if (n <= 2 || (uint8_t)buffer[1] != (n - 2)) {
|
if (n <= 2 || (uint8_t)buffer[1] != (n - 2)) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
buffer[1] = S_AUTH_BAD;
|
uint8_t c = S_AUTH_BAD;
|
||||||
long i = 2;
|
for (long i = 2; i < n; i++)
|
||||||
for (; i < n; i++)
|
|
||||||
if (buffer[i] == S_AUTH_NONE) {
|
if (buffer[i] == S_AUTH_NONE) {
|
||||||
buffer[1] = S_AUTH_NONE;
|
c = S_AUTH_NONE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
buffer[1] = c;
|
||||||
if (send(fd, buffer, 2, 0) < 0) {
|
if (send(fd, buffer, 2, 0) < 0) {
|
||||||
perror("send");
|
perror("send");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return i < n ? 0 : -1;
|
return c != S_AUTH_BAD ? 0 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -185,26 +185,26 @@ int resp_error(int fd, int e, int flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int s4_get_addr(int fd, char *bf,
|
int s4_get_addr(char *buff, size_t n,
|
||||||
size_t n, struct sockaddr_ina *dst)
|
struct sockaddr_ina *dst)
|
||||||
{
|
{
|
||||||
if (n < sizeof(struct s4_req) + 1) {
|
if (n < sizeof(struct s4_req) + 1) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
struct s4_req *r = (struct s4_req *)bf;
|
struct s4_req *r = (struct s4_req *)buff;
|
||||||
|
|
||||||
if (r->cmd != S_CMD_CONN) {
|
if (r->cmd != S_CMD_CONN) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (ntohl(r->i4.s_addr) <= 255) {
|
if (ntohl(r->i4.s_addr) <= 255) {
|
||||||
if (!params.resolve || bf[n - 1] != 0) {
|
if (!params.resolve || buff[n - 1] != 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
char *id_end = strchr(bf + sizeof(*r), 0);
|
char *id_end = strchr(buff + sizeof(*r), 0);
|
||||||
if (!id_end) {
|
if (!id_end) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
int len = (bf + n - id_end) - 2;
|
int len = (buff + n - id_end) - 2;
|
||||||
if (len < 3 || len > 255) {
|
if (len < 3 || len > 255) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -222,7 +222,7 @@ int s4_get_addr(int fd, char *bf,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int s5_get_addr(char *buffer, ssize_t n,
|
int s5_get_addr(char *buffer, ssize_t n,
|
||||||
struct sockaddr_ina *addr)
|
struct sockaddr_ina *addr)
|
||||||
{
|
{
|
||||||
struct s5_req *r = (struct s5_req *)buffer;
|
struct s5_req *r = (struct s5_req *)buffer;
|
||||||
|
@ -369,7 +369,7 @@ static inline int on_request(struct poolhd *pool, struct eval *val,
|
||||||
else if (*buffer == S_VER4) {
|
else if (*buffer == S_VER4) {
|
||||||
val->flag = FLAG_S4;
|
val->flag = FLAG_S4;
|
||||||
|
|
||||||
int error = s4_get_addr(val->fd, buffer, n, &dst);
|
int error = s4_get_addr(buffer, n, &dst);
|
||||||
if (!error) {
|
if (!error) {
|
||||||
error = create_conn(pool, val, &dst);
|
error = create_conn(pool, val, &dst);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue