} 
static struct sock *x25_find_listener(struct x25_address *addr, struct x25_calluserdata *calluserdata){	struct sock *s;	struct sock *next_best;	struct hlist_node *node;	read_lock_bh(&x25_list_lock);	next_best = NULL;	sk_for_each(s, node, &x25_list)		if ((!strcmp(addr->x25_addr,			     x25_sk(s)->source_addr.x25_addr) ||		     !strcmp(addr->x25_addr,			     null_x25_address.x25_addr)) &&		     s->sk_state == TCP_LISTEN) {			/*			 * Found a listening socket, now check the incoming			 * call user data vs this sockets call user data			 */			if (x25_check_calluserdata(&x25_sk(s)->calluserdata, calluserdata)) {				sock_hold(s);				goto found;			}			if (x25_sk(s)->calluserdata.cudlength == 0) {				next_best = s;			}		}	if (next_best) {		s = next_best;		sock_hold(s);		goto found;	}	s = NULL;found:	read_unlock_bh(&x25_list_lock);	return s;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/cb65d506c34c86df5bcef939ce5a8666a451bd8b/af_x25.c/clean/net/x25/af_x25.c