[PATCH 03/11] xt_psd: avoid if (c=h) do {..} while (c = c->next)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



its aquivalent to c=h; while (c) { ..; c = c->next; }

which is a bit easier to read.
---
 extensions/xt_psd.c |   38 ++++++++++++++++++++------------------
 1 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/extensions/xt_psd.c b/extensions/xt_psd.c
index 442c05a..e803052 100644
--- a/extensions/xt_psd.c
+++ b/extensions/xt_psd.c
@@ -162,8 +162,8 @@ xt_psd_match(const struct sk_buff *pskb, struct xt_action_param *match)
 	u_int16_t src_port,dest_port;
 	u_int8_t proto;
 	unsigned long now;
-	struct host *curr, *last, **head;
-	int hash, count;
+	struct host *curr, *last = NULL, **head;
+	int hash, count = 0;
 	/* Parameters from userspace */
 	const struct xt_psd_info *psdinfo = match->matchinfo;
 
@@ -204,20 +204,21 @@ xt_psd_match(const struct sk_buff *pskb, struct xt_action_param *match)
 	}
 
 	now = jiffies;
+	hash = hashfunc(addr);
+	head = &state.hash[hash];
 
 	spin_lock(&state.lock);
 
 	/* Do we know this source address already? */
-	count = 0;
-	last = NULL;
-	if ((curr = *(head = &state.hash[hash = hashfunc(addr)])) != NULL)
-		do {
-			if (curr->src_addr.s_addr == addr.s_addr)
-				break;
-			count++;
-			if (curr->next != NULL)
-				last = curr;
-		} while ((curr = curr->next) != NULL);
+	curr = *head;
+	while (curr != NULL) {
+		if (curr->src_addr.s_addr == addr.s_addr)
+			break;
+		count++;
+		if (curr->next != NULL)
+			last = curr;
+		curr = curr->next;
+	}
 
 	if (curr != NULL) {
 		/* We know this address, and the entry isn't too old. Update it. */
@@ -265,12 +266,13 @@ xt_psd_match(const struct sk_buff *pskb, struct xt_action_param *match)
 	else
 		head = &last;
 	last = NULL;
-	if ((curr = *head) != NULL)
-		do {
-			if (curr == &state.list[state.index])
-				break;
-			last = curr;
-		} while ((curr = curr->next) != NULL);
+	curr = *head;
+	while (curr != NULL) {
+		if (curr == &state.list[state.index])
+			break;
+		last = curr;
+		curr = curr->next;
+	}
 
 	/* Then, remove it */
 	if (curr != NULL) {
-- 
1.7.8.6

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux