[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