diff options
author | Guy Harris <guy@alum.mit.edu> | 2017-10-29 19:10:46 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2017-10-30 02:11:22 +0000 |
commit | 39ba9d4e7fb52ca8017bd4e934d6e6f8acba8d4c (patch) | |
tree | eacce8999646bf94f162514e92c94747ca03dc4f /wsutil | |
parent | dd1c18dd031038cbee7e219e322cbea1eafc87ca (diff) |
Add wsutil/inet_ipv4.h.
It defines a ws_in4_addr type, which is intended to hold IPv4 addresses
in network byte order, and some macros to test for IPv4 addresses in the
local network control block and multicast IPv4 addresses.
Use those macros in places where dissectors had their own code for that
purpose.
Change-Id: I4252b410e37207157be85119a332e2a6913b332f
Reviewed-on: https://code.wireshark.org/review/24178
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wsutil')
-rw-r--r-- | wsutil/Makefile.am | 1 | ||||
-rw-r--r-- | wsutil/inet_ipv4.h | 44 |
2 files changed, 45 insertions, 0 deletions
diff --git a/wsutil/Makefile.am b/wsutil/Makefile.am index bea58f3dde..6cb212bbf9 100644 --- a/wsutil/Makefile.am +++ b/wsutil/Makefile.am @@ -59,6 +59,7 @@ WSUTIL_PUBLIC_INCLUDES = \ g711.h \ glib-compat.h \ inet_addr.h \ + inet_ipv4.h \ inet_ipv6.h \ interface.h \ jsmn.h \ diff --git a/wsutil/inet_ipv4.h b/wsutil/inet_ipv4.h new file mode 100644 index 0000000000..9c1094f5af --- /dev/null +++ b/wsutil/inet_ipv4.h @@ -0,0 +1,44 @@ +/* inet_ipv4.h + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __INET_IPV4_H__ +#define __INET_IPV4_H__ + +#include <glib.h> + +typedef guint32 ws_in4_addr; /* 32 bit IPv4 address, in network byte order */ + +/** + * Unicast Local + * Returns true if the address is in the 224.0.0.0/24 local network + * control block + */ +#define in4_addr_is_local_network_control_block(addr) \ + ((addr & 0xffffff00) == 0xe0000000) + +/** + * Multicast + * Returns true if the address is in the 224.0.0.0/4 network block + */ +#define in4_addr_is_multicast(addr) \ + ((addr & 0xf0000000) == 0xe0000000) + +#endif |