ntohs(s->flags), NULL); 
flags, NULL); 
static void ip_vs_process_message(const char *buffer, const size_t buflen){	struct ip_vs_sync_mesg *m = (struct ip_vs_sync_mesg *)buffer;	struct ip_vs_sync_conn *s;	struct ip_vs_sync_conn_options *opt;	struct ip_vs_conn *cp;	char *p;	int i;	/* Convert size back to host byte order */	m->size = ntohs(m->size);	if (buflen != m->size) {		IP_VS_ERR("bogus message\n");		return;	}	/* SyncID sanity check */	if (ip_vs_backup_syncid != 0 && m->syncid != ip_vs_backup_syncid) {		IP_VS_DBG(7, "Ignoring incoming msg with syncid = %d\n",			  m->syncid);		return;	}	p = (char *)buffer + sizeof(struct ip_vs_sync_mesg);	for (i=0; i<m->nr_conns; i++) {		s = (struct ip_vs_sync_conn *)p;		cp = ip_vs_conn_in_get(s->protocol,				       s->caddr, s->cport,				       s->vaddr, s->vport);		if (!cp) {			cp = ip_vs_conn_new(s->protocol,					    s->caddr, s->cport,					    s->vaddr, s->vport,					    s->daddr, s->dport,					    ntohs(s->flags), NULL);			if (!cp) {				IP_VS_ERR("ip_vs_conn_new failed\n");				return;			}			cp->state = ntohs(s->state);		} else if (!cp->dest) {			/* it is an entry created by the synchronization */			cp->state = ntohs(s->state);			cp->flags = ntohs(s->flags) | IP_VS_CONN_F_HASHED;		}	/* Note that we don't touch its state and flags			   if it is a normal entry. */		if (ntohs(s->flags) & IP_VS_CONN_F_SEQ_MASK) {			opt = (struct ip_vs_sync_conn_options *)&s[1];			memcpy(&cp->in_seq, opt, sizeof(*opt));			p += FULL_CONN_SIZE;		} else			p += SIMPLE_CONN_SIZE;		atomic_set(&cp->in_pkts, sysctl_ip_vs_sync_threshold[0]);		cp->timeout = IP_VS_SYNC_CONN_TIMEOUT;		ip_vs_conn_put(cp);		if (p > buffer+buflen) {			IP_VS_ERR("bogus message\n");			return;		}	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/87375ab47cd0ba04124c6d3fd80db5c368f5dcb6/ip_vs_sync.c/clean/net/ipv4/ipvs/ip_vs_sync.c