mirror of
https://github.com/yarrick/iodine.git
synced 2025-02-22 21:08:27 +00:00
Clean up uses of sockaddr_storage
This commit is contained in:
parent
5681caad55
commit
fa4bc66d44
24
src/client.c
24
src/client.c
@ -71,8 +71,7 @@ static const char *password;
|
|||||||
static struct socket *nameserv_addrs;
|
static struct socket *nameserv_addrs;
|
||||||
static int nameserv_addrs_len;
|
static int nameserv_addrs_len;
|
||||||
static int current_nameserver;
|
static int current_nameserver;
|
||||||
static struct sockaddr_storage raw_serv;
|
static struct socket raw_serv;
|
||||||
static int raw_serv_len;
|
|
||||||
static const char *topdomain;
|
static const char *topdomain;
|
||||||
|
|
||||||
static uint16_t rand_seed;
|
static uint16_t rand_seed;
|
||||||
@ -328,7 +327,7 @@ client_set_hostname_maxlen(size_t i)
|
|||||||
const char *
|
const char *
|
||||||
client_get_raw_addr()
|
client_get_raw_addr()
|
||||||
{
|
{
|
||||||
return format_addr(&raw_serv, raw_serv_len);
|
return format_addr(&raw_serv.addr, raw_serv.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -614,7 +613,7 @@ send_raw(int fd, uint8_t *buf, size_t buflen, int user, int cmd)
|
|||||||
len += RAW_HDR_LEN;
|
len += RAW_HDR_LEN;
|
||||||
packet[RAW_HDR_CMD] = (cmd & 0xF0) | (user & 0x0F);
|
packet[RAW_HDR_CMD] = (cmd & 0xF0) | (user & 0x0F);
|
||||||
|
|
||||||
sendto(fd, packet, len, 0, (struct sockaddr*)&raw_serv, sizeof(raw_serv));
|
sendto(fd, packet, len, 0, (struct sockaddr*)&raw_serv.addr, raw_serv.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -892,14 +891,13 @@ read_dns_withq(int dns_fd, int tun_fd, uint8_t *buf, size_t buflen, struct query
|
|||||||
Returns >0 on correct replies; value is #valid bytes in *buf.
|
Returns >0 on correct replies; value is #valid bytes in *buf.
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
struct sockaddr_storage from;
|
struct socket from;
|
||||||
uint8_t data[64*1024];
|
uint8_t data[64*1024];
|
||||||
socklen_t addrlen;
|
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
addrlen = sizeof(from);
|
from.length = sizeof(from.addr);
|
||||||
if ((r = recvfrom(dns_fd, data, sizeof(data), 0,
|
if ((r = recvfrom(dns_fd, data, sizeof(data), 0,
|
||||||
(struct sockaddr*)&from, &addrlen)) < 0) {
|
(struct sockaddr*)&from.addr, &from.length)) < 0) {
|
||||||
warn("recvfrom");
|
warn("recvfrom");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1801,21 +1799,21 @@ handshake_raw_udp(int dns_fd, int seed)
|
|||||||
|
|
||||||
if (len == 5 && in[0] == 'I') {
|
if (len == 5 && in[0] == 'I') {
|
||||||
/* Received IPv4 address */
|
/* Received IPv4 address */
|
||||||
struct sockaddr_in *raw4_serv = (struct sockaddr_in *) &raw_serv;
|
struct sockaddr_in *raw4_serv = (struct sockaddr_in *) &raw_serv.addr;
|
||||||
raw4_serv->sin_family = AF_INET;
|
raw4_serv->sin_family = AF_INET;
|
||||||
memcpy(&raw4_serv->sin_addr, &in[1], sizeof(struct in_addr));
|
memcpy(&raw4_serv->sin_addr, &in[1], sizeof(struct in_addr));
|
||||||
raw4_serv->sin_port = htons(53);
|
raw4_serv->sin_port = htons(53);
|
||||||
raw_serv_len = sizeof(struct sockaddr_in);
|
raw_serv.length = sizeof(struct sockaddr_in);
|
||||||
got_addr = 1;
|
got_addr = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (len == 17 && in[0] == 'I') {
|
if (len == 17 && in[0] == 'I') {
|
||||||
/* Received IPv6 address */
|
/* Received IPv6 address */
|
||||||
struct sockaddr_in6 *raw6_serv = (struct sockaddr_in6 *) &raw_serv;
|
struct sockaddr_in6 *raw6_serv = (struct sockaddr_in6 *) &raw_serv.addr;
|
||||||
raw6_serv->sin6_family = AF_INET6;
|
raw6_serv->sin6_family = AF_INET6;
|
||||||
memcpy(&raw6_serv->sin6_addr, &in[1], sizeof(struct in6_addr));
|
memcpy(&raw6_serv->sin6_addr, &in[1], sizeof(struct in6_addr));
|
||||||
raw6_serv->sin6_port = htons(53);
|
raw6_serv->sin6_port = htons(53);
|
||||||
raw_serv_len = sizeof(struct sockaddr_in6);
|
raw_serv.length = sizeof(struct sockaddr_in6);
|
||||||
got_addr = 1;
|
got_addr = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1831,7 +1829,7 @@ handshake_raw_udp(int dns_fd, int seed)
|
|||||||
fprintf(stderr, "Failed to get raw server IP, will use DNS mode.\n");
|
fprintf(stderr, "Failed to get raw server IP, will use DNS mode.\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
fprintf(stderr, "Server is at %s, trying raw login: ", format_addr(&raw_serv, raw_serv_len));
|
fprintf(stderr, "Server is at %s, trying raw login: ", format_addr(&raw_serv.addr, raw_serv.length));
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
|
|
||||||
/* do login against port 53 on remote server
|
/* do login against port 53 on remote server
|
||||||
|
@ -122,7 +122,7 @@ struct query {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct socket {
|
struct socket {
|
||||||
size_t length;
|
socklen_t length;
|
||||||
struct sockaddr_storage addr;
|
struct sockaddr_storage addr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user