[netfilter-cvslog] r3991 - in branches/netfilter-ha: linux-2.6/ct_sync linux-2.6-actact/ct_sync

laforge at netfilter.org laforge at netfilter.org
Thu Jun 23 11:00:49 CEST 2005


Author: laforge at netfilter.org
Date: 2005-06-23 11:00:47 +0200 (Thu, 23 Jun 2005)
New Revision: 3991

Modified:
   branches/netfilter-ha/linux-2.6-actact/ct_sync/ct_sync_proto.c
   branches/netfilter-ha/linux-2.6/ct_sync/ct_sync_proto.c
Log:
continue retransmitting INITSYNC_REQUEST's even after we've received the first non-initsync state packet.


Modified: branches/netfilter-ha/linux-2.6/ct_sync/ct_sync_proto.c
===================================================================
--- branches/netfilter-ha/linux-2.6/ct_sync/ct_sync_proto.c	2005-06-23 08:57:55 UTC (rev 3990)
+++ branches/netfilter-ha/linux-2.6/ct_sync/ct_sync_proto.c	2005-06-23 09:00:47 UTC (rev 3991)
@@ -490,18 +490,22 @@
 
 /* externally triggered: transmit an initsync request if necessary:
  *   - we're in state CT_SYNC_PSTATE_SLAVE_INIT 
- *   - we're in state CT_SYNC_PSTATE_SLAVE_SYNSENT but at least five seconds
- *      have elapsed since the last request
+ *   - we're in state CT_SYNC_PSTATE_SLAVE_SYNSENT or _SYNRECV, but at least
+ *     five seconds have elapsed since the last request
  */
 int
 cts_proto_initsync_request(struct cts_protoh *cph)
 {
-	if ((atomic_read(&cph->state) == CT_SYNC_PSTATE_SLAVE_INIT)
-	    || (atomic_read(&cph->state) == CT_SYNC_PSTATE_SLAVE_SYNSENT
+	unsigned int state = atomic_read(&cph->state);
+
+	if ((state == CT_SYNC_PSTATE_SLAVE_INIT)
+	    || ((state == CT_SYNC_PSTATE_SLAVE_SYNSENT
+		 || state == CT_SYNC_PSTATE_SLAVE_SYNRECV)
 		&& jiffies >= cph->last_initsync + 5 * HZ)) {
 		cts_proto_send_initsync_request(cph);
 		cph->last_initsync = jiffies;
-		set_state(cph, CT_SYNC_PSTATE_SLAVE_SYNSENT);
+		if (state == CT_SYNC_PSTATE_SLAVE_INIT)
+			set_state(cph, CT_SYNC_PSTATE_SLAVE_SYNSENT);
 	}
 
 	return 0;

Modified: branches/netfilter-ha/linux-2.6-actact/ct_sync/ct_sync_proto.c
===================================================================
--- branches/netfilter-ha/linux-2.6-actact/ct_sync/ct_sync_proto.c	2005-06-23 08:57:55 UTC (rev 3990)
+++ branches/netfilter-ha/linux-2.6-actact/ct_sync/ct_sync_proto.c	2005-06-23 09:00:47 UTC (rev 3991)
@@ -500,18 +500,22 @@
 
 /* externally triggered: transmit an initsync request if necessary:
  *   - we're in state CT_SYNC_PSTATE_SLAVE_INIT 
- *   - we're in state CT_SYNC_PSTATE_SLAVE_SYNSENT but at least five seconds
- *      have elapsed since the last request
+ *   - we're in state CT_SYNC_PSTATE_SLAVE_SYNSENT or _SYNRECV, but at least
+ *     five seconds have elapsed since the last request
  */
 int
 cts_proto_initsync_request(struct cts_protoh *cph)
 {
-	if ((atomic_read(&cph->state) == CT_SYNC_PSTATE_SLAVE_INIT)
-	    || (atomic_read(&cph->state) == CT_SYNC_PSTATE_SLAVE_SYNSENT
+	unsigned int state = atomic_read(&cph->state);
+
+	if ((state == CT_SYNC_PSTATE_SLAVE_INIT)
+	    || ((state == CT_SYNC_PSTATE_SLAVE_SYNSENT
+		 || state == CT_SYNC_PSTATE_SLAVE_SYNRECV)
 		&& jiffies >= cph->last_initsync + 5 * HZ)) {
 		cts_proto_send_initsync_request(cph);
 		cph->last_initsync = jiffies;
-		set_state(cph, CT_SYNC_PSTATE_SLAVE_SYNSENT);
+		if (state == CT_SYNC_PSTATE_SLAVE_INIT)
+			set_state(cph, CT_SYNC_PSTATE_SLAVE_SYNSENT);
 	}
 
 	return 0;




More information about the netfilter-cvslog mailing list