[hipl-dev] Re: [Merge] lp:~stefan.goetz/hipl/style-check-hook-review into lp:hipl

  • From: Stefan Götz <stefan.goetz@xxxxxxxxxxxxxxxxx>
  • To: hipl-dev@xxxxxxxxxxxxx
  • Date: Tue, 04 Jan 2011 10:28:56 +0100

> Could you or someone else from the hipl-core team commit the attached patch to
> trunk? It contains exactly that cleanup.

Wait, I just noticed that even more zeroing and assignments can be avoided in
that code. Here's another version of the patch.

Stefan
=== modified file 'firewall/conntrack.c'
--- firewall/conntrack.c        2010-12-28 16:19:46 +0000
+++ firewall/conntrack.c        2011-01-04 09:26:42 +0000
@@ -444,34 +444,26 @@
 #endif
 
     //original direction tuple
-    connection->original.state                   = HIP_STATE_UNASSOCIATED;
-    connection->original.direction               = ORIGINAL_DIR;
-    connection->original.esp_tuples              = NULL;
-    connection->original.connection              = connection;
-    connection->original.hip_tuple               = malloc(sizeof(struct 
hip_tuple));
-    memset(connection->original.hip_tuple, 0, sizeof(struct hip_tuple));
-    connection->original.hip_tuple->tuple        = &connection->original;
-    connection->original.hip_tuple->data         = malloc(sizeof(struct 
hip_data));
-    memset(connection->original.hip_tuple->data, 0, sizeof(struct hip_data));
-    memcpy(&connection->original.hip_tuple->data->src_hit, &data->src_hit, 
sizeof(struct in6_addr));
-    memcpy(&connection->original.hip_tuple->data->dst_hit, &data->dst_hit, 
sizeof(struct in6_addr));
-    connection->original.hip_tuple->data->src_hi = NULL;
-    connection->original.hip_tuple->data->verify = NULL;
+    connection->original.state                    = HIP_STATE_UNASSOCIATED;
+    connection->original.direction                = ORIGINAL_DIR;
+    connection->original.esp_tuples               = NULL;
+    connection->original.connection               = connection;
+    connection->original.hip_tuple                = malloc(sizeof(struct 
hip_tuple));
+    connection->original.hip_tuple->tuple         = &connection->original;
+    connection->original.hip_tuple->data          = calloc(1, sizeof(struct 
hip_data));
+    connection->original.hip_tuple->data->src_hit = data->src_hit;
+    connection->original.hip_tuple->data->dst_hit = data->dst_hit;
 
     //reply direction tuple
-    connection->reply.state                      = HIP_STATE_UNASSOCIATED;
-    connection->reply.direction                  = REPLY_DIR;
-    connection->reply.esp_tuples                 = NULL;
-    connection->reply.connection                 = connection;
-    connection->reply.hip_tuple                  = malloc(sizeof(struct 
hip_tuple));
-    memset(connection->reply.hip_tuple, 0, sizeof(struct hip_tuple));
-    connection->reply.hip_tuple->tuple           = &connection->reply;
-    connection->reply.hip_tuple->data            = malloc(sizeof(struct 
hip_data));
-    memset(connection->reply.hip_tuple->data, 0, sizeof(struct hip_data));
-    memcpy(&connection->reply.hip_tuple->data->src_hit, &data->dst_hit, 
sizeof(struct in6_addr));
-    memcpy(&connection->reply.hip_tuple->data->dst_hit, &data->src_hit, 
sizeof(struct in6_addr));
-    connection->reply.hip_tuple->data->src_hi    = NULL;
-    connection->reply.hip_tuple->data->verify    = NULL;
+    connection->reply.state                    = HIP_STATE_UNASSOCIATED;
+    connection->reply.direction                = REPLY_DIR;
+    connection->reply.esp_tuples               = NULL;
+    connection->reply.connection               = connection;
+    connection->reply.hip_tuple                = malloc(sizeof(struct 
hip_tuple));
+    connection->reply.hip_tuple->tuple         = &connection->reply;
+    connection->reply.hip_tuple->data          = calloc(1, sizeof(struct 
hip_data));
+    connection->reply.hip_tuple->data->src_hit = data->dst_hit;
+    connection->reply.hip_tuple->data->dst_hit = data->src_hit;
 
     //add tuples to list
     hip_list = append_to_list(hip_list, connection->original.hip_tuple);

Other related posts: