687c730,738
< --- linux.ctx/include/net/tcp.h	Sun Nov 10 05:31:02 2002
---
> --- linux.ctx/include/net/tcp.h	Sun Nov 10 14:24:15 2002
> ***************
> *** 77,80 ****
> --- 77,81 ----
>   	unsigned short		port;
>   	signed short		fastreuse;
> + 	unsigned int 		context;
>   	struct tcp_bind_bucket	*next;
>   	struct sock		*owners;
690c741
< --- 191,195 ----
---
> --- 192,196 ----
2330c2389,2432
< --- linux.ctx/net/ipv4/tcp_ipv4.c	Fri Nov  1 14:20:51 2002
---
> --- linux.ctx/net/ipv4/tcp_ipv4.c	Mon Nov 11 18:30:22 2002
> ***************
> *** 134,137 ****
> --- 134,138 ----
>   		tb->fastreuse = 0;
>   		tb->owners = NULL;
> + 		tb->context = current -> s_context -> id;
>   		if((tb->next = head->chain) != NULL)
>   			tb->next->pprev = &tb->next;
> ***************
> *** 205,208 ****
> --- 206,210 ----
>   	struct tcp_bind_bucket *tb;
>   	int ret;
> + 	unsigned int ctx = current -> s_context;
>   
>   	local_bh_disable();
> ***************
> *** 221,225 ****
>   			spin_lock(&head->lock);
>   			for (tb = head->chain; tb; tb = tb->next)
> ! 				if (tb->port == rover)
>   					goto next;
>   			break;
> --- 223,228 ----
>   			spin_lock(&head->lock);
>   			for (tb = head->chain; tb; tb = tb->next)
> ! 				if( (tb->port == rover) &&
> ! 				    (tb->context == ctx) )
>   					goto next;
>   			break;
> ***************
> *** 244,248 ****
>   		spin_lock(&head->lock);
>   		for (tb = head->chain; tb != NULL; tb = tb->next)
> ! 			if (tb->port == snum)
>   				break;
>   	}
> --- 247,251 ----
>   		spin_lock(&head->lock);
>   		for (tb = head->chain; tb != NULL; tb = tb->next)
> ! 			if( (tb->port == snum) && (tb->context == ctx) )
>   				break;
>   	}
