Lines Matching refs:sk
175 struct sock *sk = (struct sock *) chan->private; in pptp_xmit() local
176 struct pppox_sock *po = pppox_sk(sk); in pptp_xmit()
195 rt = ip_route_output_ports(sock_net(sk), &fl4, NULL, in pptp_xmit()
213 if (skb->sk) in pptp_xmit()
214 skb_set_owner_w(new_skb, skb->sk); in pptp_xmit()
270 if (ip_dont_fragment(sk, &rt->dst)) in pptp_xmit()
287 ip_select_ident(sock_net(sk), skb, NULL); in pptp_xmit()
298 static int pptp_rcv_core(struct sock *sk, struct sk_buff *skb) in pptp_rcv_core() argument
300 struct pppox_sock *po = pppox_sk(sk); in pptp_rcv_core()
306 if (!(sk->sk_state & PPPOX_CONNECTED)) { in pptp_rcv_core()
307 if (sock_queue_rcv_skb(sk, skb)) in pptp_rcv_core()
420 struct sock *sk = sock->sk; in pptp_bind() local
422 struct pppox_sock *po = pppox_sk(sk); in pptp_bind()
428 lock_sock(sk); in pptp_bind()
430 if (sk->sk_state & PPPOX_DEAD) { in pptp_bind()
435 if (sk->sk_state & PPPOX_BOUND) { in pptp_bind()
443 sk->sk_state |= PPPOX_BOUND; in pptp_bind()
446 release_sock(sk); in pptp_bind()
453 struct sock *sk = sock->sk; in pptp_connect() local
455 struct pppox_sock *po = pppox_sk(sk); in pptp_connect()
470 lock_sock(sk); in pptp_connect()
472 if (sk->sk_state & PPPOX_CONNECTED) { in pptp_connect()
478 if (sk->sk_state & PPPOX_DEAD) { in pptp_connect()
488 po->chan.private = sk; in pptp_connect()
491 rt = ip_route_output_ports(sock_net(sk), &fl4, sk, in pptp_connect()
495 IPPROTO_GRE, RT_CONN_FLAGS(sk), 0); in pptp_connect()
500 sk_setup_caps(sk, &rt->dst); in pptp_connect()
516 sk->sk_state |= PPPOX_CONNECTED; in pptp_connect()
519 release_sock(sk); in pptp_connect()
533 sp.sa_addr.pptp = pppox_sk(sock->sk)->proto.pptp.src_addr; in pptp_getname()
544 struct sock *sk = sock->sk; in pptp_release() local
549 if (!sk) in pptp_release()
552 lock_sock(sk); in pptp_release()
554 if (sock_flag(sk, SOCK_DEAD)) { in pptp_release()
555 release_sock(sk); in pptp_release()
559 po = pppox_sk(sk); in pptp_release()
563 pppox_unbind_sock(sk); in pptp_release()
564 sk->sk_state = PPPOX_DEAD; in pptp_release()
566 sock_orphan(sk); in pptp_release()
567 sock->sk = NULL; in pptp_release()
569 release_sock(sk); in pptp_release()
570 sock_put(sk); in pptp_release()
575 static void pptp_sock_destruct(struct sock *sk) in pptp_sock_destruct() argument
577 if (!(sk->sk_state & PPPOX_DEAD)) { in pptp_sock_destruct()
578 del_chan(pppox_sk(sk)); in pptp_sock_destruct()
579 pppox_unbind_sock(sk); in pptp_sock_destruct()
581 skb_queue_purge(&sk->sk_receive_queue); in pptp_sock_destruct()
587 struct sock *sk; in pptp_create() local
591 sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pptp_sk_proto); in pptp_create()
592 if (!sk) in pptp_create()
595 sock_init_data(sock, sk); in pptp_create()
600 sk->sk_backlog_rcv = pptp_rcv_core; in pptp_create()
601 sk->sk_state = PPPOX_NONE; in pptp_create()
602 sk->sk_type = SOCK_STREAM; in pptp_create()
603 sk->sk_family = PF_PPPOX; in pptp_create()
604 sk->sk_protocol = PX_PROTO_PPTP; in pptp_create()
605 sk->sk_destruct = pptp_sock_destruct; in pptp_create()
607 po = pppox_sk(sk); in pptp_create()
621 struct sock *sk = (struct sock *) chan->private; in pptp_ppp_ioctl() local
622 struct pppox_sock *po = pppox_sk(sk); in pptp_ppp_ioctl()