]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
sockaddr - save a cast accessing the port
authorMarkus Kötter <koetter@luis.uni-hannover.de>
Fri, 2 Nov 2018 08:01:34 +0000 (09:01 +0100)
committerMarkus Kötter <koetter@luis.uni-hannover.de>
Fri, 2 Nov 2018 08:01:34 +0000 (09:01 +0100)
packet/construct_unix.c
packet/deconstruct_unix.c
packet/probe.c
packet/probe_unix.c
packet/sockaddr.c
packet/sockaddr.h

index 2268a224d35c0b9cb49107aa296382e1b16c5996..e1e3866a6f20cff374acd6ab4de208f919a995a9 100644 (file)
@@ -92,7 +92,7 @@ void construct_addr_port(
     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  */
@@ -210,8 +210,8 @@ void set_udp_ports(
 
         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 */
index 3c535e16a02087978b6c452a454205feb93cb2b1..1af7419afbd9124d038e375dda92a945ba4c46f5 100644 (file)
@@ -88,10 +88,10 @@ void handle_inner_udp_packet(
     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;
index 8eb80e87ca72ef8ce603dd0fa972cf620079f500..0441efde726ad3e4aa95d04565d5799ebe24d54a 100644 (file)
@@ -110,7 +110,7 @@ int resolve_probe_addresses(
     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;
@@ -319,7 +319,7 @@ int find_source_addr(
        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);
@@ -361,7 +361,7 @@ int find_source_addr(
        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;
 }
index 405b53cf3ea5eef285bd9c0ab7c9604cf898ff2c..b3177e513985b1cf535aa19b5d51aacd0fb143ac 100644 (file)
@@ -65,9 +65,9 @@ int send_packet(
             } 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;
                 }
             }
         }
@@ -86,9 +86,9 @@ int send_packet(
             } 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;
                 }
             }
         }
index c897da2f3b54854c621dd6cdede797fcdf4be4e6..2a4b34aad0f0df517feb49dbd82a71b4db1cc6ee 100644 (file)
@@ -51,7 +51,7 @@ unsigned int sockaddr_size(const void *x)
        return 0;
 }
 
-void *sockaddr_port_offset(const void *x)
+in_port_t *sockaddr_port_offset(const void *x)
 {
        if( x == NULL )
                return NULL;
index ae7fc19d7e1aa128743cfbb35510367bf49bd897..9e44c44b553c30d63b111f09857dc1ff343f0944 100644 (file)
@@ -3,4 +3,4 @@ unsigned int sockaddr_size(const void *x);
 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);