int port)
{
memcpy(addr_with_port, addr, sizeof(struct sockaddr_storage));
- *(uint16_t *)sockaddr_port_offset(addr) = htons(port);
+ *sockaddr_port_offset(addr) = htons(port);
}
/* Construct a header for IP version 4 */
udp->checksum = 0;
}
- *(uint16_t *)sockaddr_port_offset(&probe->local_addr) = udp->srcport;
- *(uint16_t *)sockaddr_port_offset(&probe->remote_addr) = udp->dstport;
+ *sockaddr_port_offset(&probe->local_addr) = udp->srcport;
+ *sockaddr_port_offset(&probe->remote_addr) = udp->dstport;
}
/* Prepend pseudoheader to the udp datagram and calculate checksum */
if (probe->remote_addr.ss_family != remote_addr->ss_family)
return;
- if (udp->dstport != *(uint16_t *)sockaddr_port_offset(&probe->remote_addr) )
+ if (udp->dstport != *sockaddr_port_offset(&probe->remote_addr) )
return;
- if (udp->srcport != *(uint16_t *)sockaddr_port_offset(&probe->local_addr) )
+ if (udp->srcport != *sockaddr_port_offset(&probe->local_addr) )
return;
void *saddr, *daddr;
if (param->protocol == IPPROTO_ICMP) {
if ( (src_sockaddr->ss_family == AF_INET && !net_state->platform.ip4_socket_raw) ||
(src_sockaddr->ss_family == AF_INET6 && !net_state->platform.ip6_socket_raw) )
- *(uint16_t *)sockaddr_port_offset(src_sockaddr) = htons(getpid());
+ *sockaddr_port_offset(src_sockaddr) = htons(getpid());
}
return 0;
the connect will fail. We aren't actually sending
anything to the port.
*/
- *(uint16_t *)sockaddr_port_offset(&dest_with_port) = htons(1);
+ *sockaddr_port_offset(&dest_with_port) = htons(1);
len = sockaddr_addr_size(&dest_with_port);
sock = socket(destaddr->ss_family, SOCK_DGRAM, IPPROTO_UDP);
Zero the port, as we may later use this address to finding, and
we don't want to use the port from the socket we just created.
*/
- *(uint16_t *)sockaddr_port_offset(&srcaddr) = 0;
+ *sockaddr_port_offset(&srcaddr) = 0;
return 0;
}
} else {
send_socket = net_state->platform.ip6_txrx_udp_socket;
if (param->dest_port) {
- *(uint16_t *)sockaddr_port_offset(sockaddr) = htons(param->dest_port);
+ *sockaddr_port_offset(sockaddr) = htons(param->dest_port);
} else {
- *(uint16_t *)sockaddr_port_offset(sockaddr) = sequence;
+ *sockaddr_port_offset(sockaddr) = sequence;
}
}
}
} else if (param->protocol == IPPROTO_UDP) {
send_socket = net_state->platform.ip4_txrx_udp_socket;
if (param->dest_port) {
- *(uint16_t *)sockaddr_port_offset(sockaddr) = htons(param->dest_port);
+ *sockaddr_port_offset(sockaddr) = htons(param->dest_port);
} else {
- *(uint16_t *)sockaddr_port_offset(sockaddr) = sequence;
+ *sockaddr_port_offset(sockaddr) = sequence;
}
}
}
return 0;
}
-void *sockaddr_port_offset(const void *x)
+in_port_t *sockaddr_port_offset(const void *x)
{
if( x == NULL )
return NULL;
void *sockaddr_addr_offset(const void *x);
unsigned int sockaddr_addr_size(const void *x);
-void *sockaddr_port_offset(const void *x);
+in_port_t *sockaddr_port_offset(const void *x);