diff -ruN ipvs-1.0.3/ipvs/ip_vs_sync.c ipvs-1.0.3.inactconn.fix/ipvs/ip_vs_sync.c --- ipvs-1.0.3/ipvs/ip_vs_sync.c Tue Dec 11 21:41:29 2001 +++ ipvs-1.0.3.inactconn.fix/ipvs/ip_vs_sync.c Wed Jun 26 14:21:31 2002 @@ -263,8 +263,20 @@ IP_VS_ERR("ip_vs_conn_new failed\n"); return; } - } else + } else { + if((cp->flags & IP_VS_CONN_F_INACTIVE) != + (ntohs(s->flags) & + IP_VS_CONN_F_INACTIVE)) { + if (cp->flags & IP_VS_CONN_F_INACTIVE) { + atomic_dec(&cp->dest->inactconns); + atomic_inc(&cp->dest->activeconns); + } else { + atomic_dec(&cp->dest->activeconns); + atomic_inc(&cp->dest->inactconns); + } + } cp->flags = ntohs(s->flags) | IP_VS_CONN_F_HASHED; + } cp->state = ntohs(s->state); if (cp->flags & IP_VS_CONN_F_SEQ_MASK) {