Lines Matching refs:sk
135 const struct sock *sk = &po->sk; in pptp_route_output() local
138 net = sock_net(sk); in pptp_route_output()
139 flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark, 0, in pptp_route_output()
143 0, 0, sock_net_uid(net, sk)); in pptp_route_output()
144 security_sk_classify_flow(sk, flowi4_to_flowi_common(fl4)); in pptp_route_output()
146 return ip_route_output_flow(net, fl4, sk); in pptp_route_output()
151 struct sock *sk = chan->private; in pptp_xmit() local
152 struct pppox_sock *po = pppox_sk(sk); in pptp_xmit()
153 struct net *net = sock_net(sk); in pptp_xmit()
184 if (skb->sk) in pptp_xmit()
185 skb_set_owner_w(new_skb, skb->sk); in pptp_xmit()
243 if (ip_dont_fragment(sk, &rt->dst)) in pptp_xmit()
263 ip_local_out(net, skb->sk, skb); in pptp_xmit()
273 static int pptp_rcv_core(struct sock *sk, struct sk_buff *skb) in pptp_rcv_core() argument
275 struct pppox_sock *po = pppox_sk(sk); in pptp_rcv_core()
281 if (!(sk->sk_state & PPPOX_CONNECTED)) { in pptp_rcv_core()
282 if (sock_queue_rcv_skb(sk, skb)) in pptp_rcv_core()
388 struct sock *sk = sock->sk; in pptp_bind() local
390 struct pppox_sock *po = pppox_sk(sk); in pptp_bind()
396 lock_sock(sk); in pptp_bind()
398 if (sk->sk_state & PPPOX_DEAD) { in pptp_bind()
403 if (sk->sk_state & PPPOX_BOUND) { in pptp_bind()
411 sk->sk_state |= PPPOX_BOUND; in pptp_bind()
414 release_sock(sk); in pptp_bind()
421 struct sock *sk = sock->sk; in pptp_connect() local
423 struct pppox_sock *po = pppox_sk(sk); in pptp_connect()
438 lock_sock(sk); in pptp_connect()
440 if (sk->sk_state & PPPOX_CONNECTED) { in pptp_connect()
446 if (sk->sk_state & PPPOX_DEAD) { in pptp_connect()
456 po->chan.private = sk; in pptp_connect()
464 sk_setup_caps(sk, &rt->dst); in pptp_connect()
480 sk->sk_state |= PPPOX_CONNECTED; in pptp_connect()
483 release_sock(sk); in pptp_connect()
497 sp.sa_addr.pptp = pppox_sk(sock->sk)->proto.pptp.src_addr; in pptp_getname()
506 struct sock *sk = sock->sk; in pptp_release() local
510 if (!sk) in pptp_release()
513 lock_sock(sk); in pptp_release()
515 if (sock_flag(sk, SOCK_DEAD)) { in pptp_release()
516 release_sock(sk); in pptp_release()
520 po = pppox_sk(sk); in pptp_release()
524 pppox_unbind_sock(sk); in pptp_release()
525 sk->sk_state = PPPOX_DEAD; in pptp_release()
527 sock_orphan(sk); in pptp_release()
528 sock->sk = NULL; in pptp_release()
530 release_sock(sk); in pptp_release()
531 sock_put(sk); in pptp_release()
536 static void pptp_sock_destruct(struct sock *sk) in pptp_sock_destruct() argument
538 if (!(sk->sk_state & PPPOX_DEAD)) { in pptp_sock_destruct()
539 del_chan(pppox_sk(sk)); in pptp_sock_destruct()
540 pppox_unbind_sock(sk); in pptp_sock_destruct()
542 skb_queue_purge(&sk->sk_receive_queue); in pptp_sock_destruct()
543 dst_release(rcu_dereference_protected(sk->sk_dst_cache, 1)); in pptp_sock_destruct()
549 struct sock *sk; in pptp_create() local
553 sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pptp_sk_proto, kern); in pptp_create()
554 if (!sk) in pptp_create()
557 sock_init_data(sock, sk); in pptp_create()
562 sk->sk_backlog_rcv = pptp_rcv_core; in pptp_create()
563 sk->sk_state = PPPOX_NONE; in pptp_create()
564 sk->sk_type = SOCK_STREAM; in pptp_create()
565 sk->sk_family = PF_PPPOX; in pptp_create()
566 sk->sk_protocol = PX_PROTO_PPTP; in pptp_create()
567 sk->sk_destruct = pptp_sock_destruct; in pptp_create()
569 po = pppox_sk(sk); in pptp_create()
583 struct sock *sk = chan->private; in pptp_ppp_ioctl() local
584 struct pppox_sock *po = pppox_sk(sk); in pptp_ppp_ioctl()