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()
514 sk->sk_state |= PPPOX_CONNECTED; in pptp_connect()
517 release_sock(sk); in pptp_connect()
531 sp.sa_addr.pptp = pppox_sk(sock->sk)->proto.pptp.src_addr; in pptp_getname()
542 struct sock *sk = sock->sk; in pptp_release() local
547 if (!sk) in pptp_release()
550 lock_sock(sk); in pptp_release()
552 if (sock_flag(sk, SOCK_DEAD)) { in pptp_release()
553 release_sock(sk); in pptp_release()
557 po = pppox_sk(sk); in pptp_release()
561 pppox_unbind_sock(sk); in pptp_release()
562 sk->sk_state = PPPOX_DEAD; in pptp_release()
564 sock_orphan(sk); in pptp_release()
565 sock->sk = NULL; in pptp_release()
567 release_sock(sk); in pptp_release()
568 sock_put(sk); in pptp_release()
573 static void pptp_sock_destruct(struct sock *sk) in pptp_sock_destruct() argument
575 if (!(sk->sk_state & PPPOX_DEAD)) { in pptp_sock_destruct()
576 del_chan(pppox_sk(sk)); in pptp_sock_destruct()
577 pppox_unbind_sock(sk); in pptp_sock_destruct()
579 skb_queue_purge(&sk->sk_receive_queue); in pptp_sock_destruct()
580 dst_release(rcu_dereference_protected(sk->sk_dst_cache, 1)); 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()