mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
net: Make all address bytes functions take uint8_t *
Part of 33817.
This commit is contained in:
parent
f62b051e87
commit
cd7e2fc210
@ -1669,7 +1669,7 @@ tor_addr_from_netinfo_addr(tor_addr_t *tor_addr,
|
||||
} else if (type == NETINFO_ADDR_TYPE_IPV6 && len == 16) {
|
||||
const uint8_t *ipv6_bytes = netinfo_addr_getconstarray_addr_ipv6(
|
||||
netinfo_addr);
|
||||
tor_addr_from_ipv6_bytes(tor_addr, (const char *)ipv6_bytes);
|
||||
tor_addr_from_ipv6_bytes(tor_addr, ipv6_bytes);
|
||||
} else {
|
||||
log_fn(LOG_PROTOCOL_WARN, LD_OR, "Cannot read address from NETINFO "
|
||||
"- wrong type/length.");
|
||||
|
@ -3531,7 +3531,7 @@ connection_ap_handshake_socks_resolved,(entry_connection_t *conn,
|
||||
}
|
||||
} else if (answer_type == RESOLVED_TYPE_IPV6 && answer_len == 16) {
|
||||
tor_addr_t a;
|
||||
tor_addr_from_ipv6_bytes(&a, (char*)answer);
|
||||
tor_addr_from_ipv6_bytes(&a, answer);
|
||||
if (! tor_addr_is_null(&a)) {
|
||||
client_dns_set_addressmap(conn,
|
||||
conn->socks_request->address, &a,
|
||||
|
@ -353,7 +353,7 @@ extend_cell_from_extend2_cell_body(extend_cell_t *cell_out,
|
||||
continue;
|
||||
found_ipv6 = 1;
|
||||
tor_addr_from_ipv6_bytes(&cell_out->orport_ipv6.addr,
|
||||
(const char *)ls->un_ipv6_addr);
|
||||
ls->un_ipv6_addr);
|
||||
cell_out->orport_ipv6.port = ls->un_ipv6_port;
|
||||
break;
|
||||
case LS_LEGACY_ID:
|
||||
@ -674,7 +674,7 @@ extend_cell_format(uint8_t *command_out, uint16_t *len_out,
|
||||
extend2_cell_body_add_ls(cell, ls);
|
||||
ls->ls_type = LS_IPV6;
|
||||
ls->ls_len = 18;
|
||||
tor_addr_copy_ipv6_bytes((char *)ls->un_ipv6_addr,
|
||||
tor_addr_copy_ipv6_bytes(ls->un_ipv6_addr,
|
||||
&cell_in->orport_ipv6.addr);
|
||||
ls->un_ipv6_port = cell_in->orport_ipv6.port;
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ policy_expand_unspec(smartlist_t **policy)
|
||||
}
|
||||
tor_addr_from_ipv4h(&newpolicy_ipv4.addr, 0);
|
||||
tor_addr_from_ipv6_bytes(&newpolicy_ipv6.addr,
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
|
||||
(const uint8_t *)"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
|
||||
smartlist_add(tmp, addr_policy_get_canonical_entry(&newpolicy_ipv4));
|
||||
smartlist_add(tmp, addr_policy_get_canonical_entry(&newpolicy_ipv6));
|
||||
addr_policy_free(p);
|
||||
@ -1005,7 +1005,7 @@ fascist_firewall_choose_address_ls(const smartlist_t *lspecs,
|
||||
* direct connection. */
|
||||
if (have_v6) continue;
|
||||
tor_addr_from_ipv6_bytes(&addr_v6,
|
||||
(const char *) link_specifier_getconstarray_un_ipv6_addr(ls));
|
||||
link_specifier_getconstarray_un_ipv6_addr(ls));
|
||||
port_v6 = link_specifier_get_un_ipv6_port(ls);
|
||||
have_v6 = 1;
|
||||
break;
|
||||
|
@ -867,7 +867,7 @@ connection_ap_process_end_not_open(
|
||||
ttl = (int)ntohl(get_uint32(cell->payload+RELAY_HEADER_SIZE+5));
|
||||
} else if (rh->length == 17 || rh->length == 21) {
|
||||
tor_addr_from_ipv6_bytes(&addr,
|
||||
(char*)(cell->payload+RELAY_HEADER_SIZE+1));
|
||||
(cell->payload+RELAY_HEADER_SIZE+1));
|
||||
if (rh->length == 21)
|
||||
ttl = (int)ntohl(get_uint32(cell->payload+RELAY_HEADER_SIZE+17));
|
||||
}
|
||||
@ -1092,7 +1092,7 @@ connected_cell_parse(const relay_header_t *rh, const cell_t *cell,
|
||||
return -1;
|
||||
if (get_uint8(payload + 4) != 6)
|
||||
return -1;
|
||||
tor_addr_from_ipv6_bytes(addr_out, (char*)(payload + 5));
|
||||
tor_addr_from_ipv6_bytes(addr_out, (payload + 5));
|
||||
bytes = ntohl(get_uint32(payload + 21));
|
||||
if (bytes <= INT32_MAX)
|
||||
*ttl_out = (int) bytes;
|
||||
@ -1165,7 +1165,7 @@ resolved_cell_parse(const cell_t *cell, const relay_header_t *rh,
|
||||
if (answer_len != 16)
|
||||
goto err;
|
||||
addr = tor_malloc_zero(sizeof(*addr));
|
||||
tor_addr_from_ipv6_bytes(&addr->addr, (const char*) cp);
|
||||
tor_addr_from_ipv6_bytes(&addr->addr, cp);
|
||||
cp += 16;
|
||||
addr->ttl = ntohl(get_uint32(cp));
|
||||
cp += 4;
|
||||
@ -3217,7 +3217,7 @@ decode_address_from_payload(tor_addr_t *addr_out, const uint8_t *payload,
|
||||
case RESOLVED_TYPE_IPV6:
|
||||
if (payload[1] != 16)
|
||||
return NULL;
|
||||
tor_addr_from_ipv6_bytes(addr_out, (char*)(payload+2));
|
||||
tor_addr_from_ipv6_bytes(addr_out, (payload+2));
|
||||
break;
|
||||
default:
|
||||
tor_addr_make_unspec(addr_out);
|
||||
|
@ -587,9 +587,8 @@ parse_socks5_client_request(const uint8_t *raw_data, socks_request_t *req,
|
||||
strlcpy(req->address, hostname, sizeof(req->address));
|
||||
} break;
|
||||
case 4: {
|
||||
const char *ipv6 =
|
||||
(const char *)socks5_client_request_getarray_dest_addr_ipv6(
|
||||
trunnel_req);
|
||||
const uint8_t *ipv6 =
|
||||
socks5_client_request_getarray_dest_addr_ipv6(trunnel_req);
|
||||
tor_addr_from_ipv6_bytes(&destaddr, ipv6);
|
||||
|
||||
tor_addr_to_str(req->address, &destaddr, sizeof(req->address), 1);
|
||||
|
@ -902,7 +902,7 @@ get_random_virtual_addr(const virtual_addr_conf_t *conf, tor_addr_t *addr_out)
|
||||
}
|
||||
|
||||
if (ipv6)
|
||||
tor_addr_from_ipv6_bytes(addr_out, (char*) bytes);
|
||||
tor_addr_from_ipv6_bytes(addr_out, bytes);
|
||||
else
|
||||
tor_addr_from_ipv4n(addr_out, get_uint32(bytes));
|
||||
|
||||
|
@ -608,7 +608,8 @@ tor_addr_parse_mask_ports(const char *s,
|
||||
family = AF_INET;
|
||||
tor_addr_from_ipv4h(addr_out, 0);
|
||||
} else if (flags & TAPMP_STAR_IPV6_ONLY) {
|
||||
static char nil_bytes[16] = { [0]=0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 };
|
||||
static uint8_t nil_bytes[16] =
|
||||
{ [0]=0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 };
|
||||
family = AF_INET6;
|
||||
tor_addr_from_ipv6_bytes(addr_out, nil_bytes);
|
||||
} else {
|
||||
@ -629,7 +630,7 @@ tor_addr_parse_mask_ports(const char *s,
|
||||
tor_addr_from_ipv4h(addr_out, 0);
|
||||
any_flag = 1;
|
||||
} else if (!strcmp(address, "*6") && (flags & TAPMP_EXTENDED_STAR)) {
|
||||
static char nil_bytes[16] = { [0]=0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 };
|
||||
static uint8_t nil_bytes[16] = { [0]=0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 };
|
||||
family = AF_INET6;
|
||||
tor_addr_from_ipv6_bytes(addr_out, nil_bytes);
|
||||
any_flag = 1;
|
||||
@ -887,7 +888,7 @@ tor_addr_from_ipv4n(tor_addr_t *dest, uint32_t v4addr)
|
||||
/** Set <b>dest</b> to equal the IPv6 address in the 16 bytes at
|
||||
* <b>ipv6_bytes</b>. */
|
||||
void
|
||||
tor_addr_from_ipv6_bytes(tor_addr_t *dest, const char *ipv6_bytes)
|
||||
tor_addr_from_ipv6_bytes(tor_addr_t *dest, const uint8_t *ipv6_bytes)
|
||||
{
|
||||
tor_assert(dest);
|
||||
tor_assert(ipv6_bytes);
|
||||
@ -900,14 +901,14 @@ tor_addr_from_ipv6_bytes(tor_addr_t *dest, const char *ipv6_bytes)
|
||||
void
|
||||
tor_addr_from_in6(tor_addr_t *dest, const struct in6_addr *in6)
|
||||
{
|
||||
tor_addr_from_ipv6_bytes(dest, (const char*)in6->s6_addr);
|
||||
tor_addr_from_ipv6_bytes(dest, in6->s6_addr);
|
||||
}
|
||||
|
||||
/** Set the 16 bytes at <b>dest</b> to equal the IPv6 address <b>src</b>.
|
||||
* <b>src</b> must be an IPv6 address, if it is not, log a warning, and clear
|
||||
* <b>dest</b>. */
|
||||
void
|
||||
tor_addr_copy_ipv6_bytes(char *dest, const tor_addr_t *src)
|
||||
tor_addr_copy_ipv6_bytes(uint8_t *dest, const tor_addr_t *src)
|
||||
{
|
||||
tor_assert(dest);
|
||||
tor_assert(src);
|
||||
@ -1463,10 +1464,10 @@ ifconf_free_ifc_buf(struct ifconf *ifc)
|
||||
* into smartlist of <b>tor_addr_t</b> structures.
|
||||
*/
|
||||
STATIC smartlist_t *
|
||||
ifreq_to_smartlist(char *buf, size_t buflen)
|
||||
ifreq_to_smartlist(const uint8_t *buf, size_t buflen)
|
||||
{
|
||||
smartlist_t *result = smartlist_new();
|
||||
char *end = buf + buflen;
|
||||
const uint8_t *end = buf + buflen;
|
||||
|
||||
/* These acrobatics are due to alignment issues which trigger
|
||||
* undefined behaviour traps on OSX. */
|
||||
@ -1540,7 +1541,7 @@ get_interface_addresses_ioctl(int severity, sa_family_t family)
|
||||
/* Ensure we have least IFREQ_SIZE bytes unused at the end. Otherwise, we
|
||||
* don't know if we got everything during ioctl. */
|
||||
} while (mult * IFREQ_SIZE - ifc.ifc_len <= IFREQ_SIZE);
|
||||
result = ifreq_to_smartlist(ifc.ifc_buf, ifc.ifc_len);
|
||||
result = ifreq_to_smartlist((const uint8_t *)ifc.ifc_buf, ifc.ifc_len);
|
||||
|
||||
done:
|
||||
if (fd >= 0)
|
||||
|
@ -304,12 +304,12 @@ void tor_addr_from_ipv4n(tor_addr_t *dest, uint32_t v4addr);
|
||||
* order. */
|
||||
#define tor_addr_from_ipv4h(dest, v4addr) \
|
||||
tor_addr_from_ipv4n((dest), htonl(v4addr))
|
||||
void tor_addr_from_ipv6_bytes(tor_addr_t *dest, const char *bytes);
|
||||
void tor_addr_from_ipv6_bytes(tor_addr_t *dest, const uint8_t *bytes);
|
||||
/** Set <b>dest</b> to the IPv4 address incoded in <b>in</b>. */
|
||||
#define tor_addr_from_in(dest, in) \
|
||||
tor_addr_from_ipv4n((dest), (in)->s_addr);
|
||||
void tor_addr_from_in6(tor_addr_t *dest, const struct in6_addr *in6);
|
||||
void tor_addr_copy_ipv6_bytes(char *dest, const tor_addr_t *src);
|
||||
void tor_addr_copy_ipv6_bytes(uint8_t *dest, const tor_addr_t *src);
|
||||
|
||||
int tor_addr_is_null(const tor_addr_t *addr);
|
||||
int tor_addr_is_loopback(const tor_addr_t *addr);
|
||||
@ -400,7 +400,7 @@ STATIC struct smartlist_t *get_interface_addresses_win32(int severity,
|
||||
#endif /* defined(HAVE_IP_ADAPTER_TO_SMARTLIST) */
|
||||
|
||||
#ifdef HAVE_IFCONF_TO_SMARTLIST
|
||||
STATIC struct smartlist_t *ifreq_to_smartlist(char *ifr,
|
||||
STATIC struct smartlist_t *ifreq_to_smartlist(const uint8_t *ifr,
|
||||
size_t buflen);
|
||||
STATIC struct smartlist_t *get_interface_addresses_ioctl(int severity,
|
||||
sa_family_t family);
|
||||
|
@ -460,7 +460,7 @@ test_address_ifreq_to_smartlist(void *arg)
|
||||
ifc->ifc_len = sizeof(struct ifreq);
|
||||
ifc->ifc_ifcu.ifcu_req = ifr;
|
||||
|
||||
results = ifreq_to_smartlist(ifc->ifc_buf,ifc->ifc_len);
|
||||
results = ifreq_to_smartlist((const uint8_t *)ifc->ifc_buf,ifc->ifc_len);
|
||||
tt_int_op(smartlist_len(results),OP_EQ,1);
|
||||
|
||||
tor_addr = smartlist_get(results, 0);
|
||||
@ -483,7 +483,7 @@ test_address_ifreq_to_smartlist(void *arg)
|
||||
SMARTLIST_FOREACH(results, tor_addr_t *, t, tor_free(t));
|
||||
smartlist_free(results);
|
||||
|
||||
results = ifreq_to_smartlist(ifc->ifc_buf,ifc->ifc_len);
|
||||
results = ifreq_to_smartlist((const uint8_t *)ifc->ifc_buf,ifc->ifc_len);
|
||||
tt_int_op(smartlist_len(results),OP_EQ,2);
|
||||
|
||||
tor_addr = smartlist_get(results, 0);
|
||||
|
@ -509,7 +509,7 @@ do_resolve(const char *hostname,
|
||||
} else if (atype == SOCKS5_ATYPE_IPV6) {
|
||||
/* IPv6 address */
|
||||
tor_addr_from_ipv6_bytes(result_addr,
|
||||
(const char *)socks5_server_reply_getarray_bind_addr_ipv6(reply));
|
||||
socks5_server_reply_getarray_bind_addr_ipv6(reply));
|
||||
} else if (atype == SOCKS5_ATYPE_HOSTNAME) {
|
||||
/* Domain name */
|
||||
domainname_t *dn =
|
||||
|
Loading…
Reference in New Issue
Block a user