Get rid of ber_last_created_item().
[obnox/wireshark/wip.git] / epan / address.h
index 3a0074a04389e28f572ebc11e5e671265bab71c8..d5bf5ed7d11caff20728a7b1251004098c918032 100644 (file)
@@ -60,13 +60,13 @@ typedef enum {
 typedef struct _address {
   address_type  type;          /* type of address */
   int           len;           /* length of address, in bytes */
-  const guint8 *data;          /* bytes that constitute address */
+  const void   *data;          /* pointer to address data */
 } address;
 
 #define        SET_ADDRESS(addr, addr_type, addr_len, addr_data) { \
        (addr)->type = (addr_type); \
        (addr)->len = (addr_len); \
-       (addr)->data = (void *)(addr_data); \
+       (addr)->data = (addr_data); \
        }
 
 /*
@@ -122,6 +122,19 @@ typedef struct _address {
        (to)->data = SE_COPY_ADDRESS_data; \
        }
 
+/*
+ * Hash an address into a hash value (which must already have been set).
+ */
+#define ADD_ADDRESS_TO_HASH(hash_val, addr) { \
+       const guint8 *ADD_ADDRESS_TO_HASH_data; \
+       int ADD_ADDRESS_TO_HASH_index; \
+       ADD_ADDRESS_TO_HASH_data = (addr)->data; \
+       for (ADD_ADDRESS_TO_HASH_index = 0; \
+            ADD_ADDRESS_TO_HASH_index < (addr)->len; \
+            ADD_ADDRESS_TO_HASH_index++) \
+               hash_val += ADD_ADDRESS_TO_HASH_data[ADD_ADDRESS_TO_HASH_index]; \
+       }
+
 /* Types of port numbers Wireshark knows about. */
 typedef enum {
   PT_NONE,             /* no port number */