dnsproxy: Refactor request destroy code
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Mon, 26 Mar 2012 06:54:17 +0000 (08:54 +0200)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Mon, 2 Apr 2012 12:52:01 +0000 (14:52 +0200)
Move common code into a function for destroying the request data.

src/dnsproxy.c

index 7c75dd8..4033f2a 100644 (file)
@@ -2650,6 +2650,17 @@ static int create_listener(struct listener_data *ifdata)
        return 0;
 }
 
+static void destroy_request_data(struct request_data *req)
+{
+       if (req->timeout > 0)
+               g_source_remove(req->timeout);
+
+       g_free(req->resp);
+       g_free(req->request);
+       g_free(req->name);
+       g_free(req);
+}
+
 static void destroy_listener(struct listener_data *ifdata)
 {
        GSList *list;
@@ -2662,13 +2673,7 @@ static void destroy_listener(struct listener_data *ifdata)
 
                DBG("Dropping pending request (id 0x%04x -> 0x%04x)",
                                                req->srcid, req->dstid);
-               if (req->timeout > 0)
-                       g_source_remove(req->timeout);
-
-               g_free(req->resp);
-               g_free(req->request);
-               g_free(req->name);
-               g_free(req);
+               destroy_request_data(req);
                list->data = NULL;
        }
 
@@ -2680,13 +2685,7 @@ static void destroy_listener(struct listener_data *ifdata)
 
                DBG("Dropping request (id 0x%04x -> 0x%04x)",
                                                req->srcid, req->dstid);
-               if (req->timeout > 0)
-                       g_source_remove(req->timeout);
-
-               g_free(req->resp);
-               g_free(req->request);
-               g_free(req->name);
-               g_free(req);
+               destroy_request_data(req);
                list->data = NULL;
        }