Lines Matching refs:sk

173 	struct sock *sk = (struct sock *) chan->private;  in pptp_xmit()  local
174 struct pppox_sock *po = pppox_sk(sk); in pptp_xmit()
175 struct net *net = sock_net(sk); in pptp_xmit()
212 if (skb->sk) in pptp_xmit()
213 skb_set_owner_w(new_skb, skb->sk); in pptp_xmit()
269 if (ip_dont_fragment(sk, &rt->dst)) in pptp_xmit()
289 ip_local_out(net, skb->sk, skb); in pptp_xmit()
297 static int pptp_rcv_core(struct sock *sk, struct sk_buff *skb) in pptp_rcv_core() argument
299 struct pppox_sock *po = pppox_sk(sk); in pptp_rcv_core()
305 if (!(sk->sk_state & PPPOX_CONNECTED)) { in pptp_rcv_core()
306 if (sock_queue_rcv_skb(sk, skb)) in pptp_rcv_core()
419 struct sock *sk = sock->sk; in pptp_bind() local
421 struct pppox_sock *po = pppox_sk(sk); in pptp_bind()
427 lock_sock(sk); in pptp_bind()
429 if (sk->sk_state & PPPOX_DEAD) { in pptp_bind()
434 if (sk->sk_state & PPPOX_BOUND) { in pptp_bind()
442 sk->sk_state |= PPPOX_BOUND; in pptp_bind()
445 release_sock(sk); in pptp_bind()
452 struct sock *sk = sock->sk; in pptp_connect() local
454 struct pppox_sock *po = pppox_sk(sk); in pptp_connect()
469 lock_sock(sk); in pptp_connect()
471 if (sk->sk_state & PPPOX_CONNECTED) { in pptp_connect()
477 if (sk->sk_state & PPPOX_DEAD) { in pptp_connect()
487 po->chan.private = sk; in pptp_connect()
490 rt = ip_route_output_ports(sock_net(sk), &fl4, sk, in pptp_connect()
494 IPPROTO_GRE, RT_CONN_FLAGS(sk), 0); in pptp_connect()
499 sk_setup_caps(sk, &rt->dst); in pptp_connect()
515 sk->sk_state |= PPPOX_CONNECTED; in pptp_connect()
518 release_sock(sk); in pptp_connect()
532 sp.sa_addr.pptp = pppox_sk(sock->sk)->proto.pptp.src_addr; in pptp_getname()
543 struct sock *sk = sock->sk; in pptp_release() local
548 if (!sk) in pptp_release()
551 lock_sock(sk); in pptp_release()
553 if (sock_flag(sk, SOCK_DEAD)) { in pptp_release()
554 release_sock(sk); in pptp_release()
558 po = pppox_sk(sk); in pptp_release()
562 pppox_unbind_sock(sk); in pptp_release()
563 sk->sk_state = PPPOX_DEAD; in pptp_release()
565 sock_orphan(sk); in pptp_release()
566 sock->sk = NULL; in pptp_release()
568 release_sock(sk); in pptp_release()
569 sock_put(sk); in pptp_release()
574 static void pptp_sock_destruct(struct sock *sk) in pptp_sock_destruct() argument
576 if (!(sk->sk_state & PPPOX_DEAD)) { in pptp_sock_destruct()
577 del_chan(pppox_sk(sk)); in pptp_sock_destruct()
578 pppox_unbind_sock(sk); in pptp_sock_destruct()
580 skb_queue_purge(&sk->sk_receive_queue); in pptp_sock_destruct()
586 struct sock *sk; in pptp_create() local
590 sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pptp_sk_proto, kern); in pptp_create()
591 if (!sk) in pptp_create()
594 sock_init_data(sock, sk); in pptp_create()
599 sk->sk_backlog_rcv = pptp_rcv_core; in pptp_create()
600 sk->sk_state = PPPOX_NONE; in pptp_create()
601 sk->sk_type = SOCK_STREAM; in pptp_create()
602 sk->sk_family = PF_PPPOX; in pptp_create()
603 sk->sk_protocol = PX_PROTO_PPTP; in pptp_create()
604 sk->sk_destruct = pptp_sock_destruct; in pptp_create()
606 po = pppox_sk(sk); in pptp_create()
620 struct sock *sk = (struct sock *) chan->private; in pptp_ppp_ioctl() local
621 struct pppox_sock *po = pppox_sk(sk); in pptp_ppp_ioctl()