• Home
  • Raw
  • Download

Lines Matching refs:sk

135 	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 = (struct sock *) 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()
186 if (skb->sk) in pptp_xmit()
187 skb_set_owner_w(new_skb, skb->sk); in pptp_xmit()
241 if (ip_dont_fragment(sk, &rt->dst)) in pptp_xmit()
261 ip_local_out(net, skb->sk, skb); in pptp_xmit()
269 static int pptp_rcv_core(struct sock *sk, struct sk_buff *skb) in pptp_rcv_core() argument
271 struct pppox_sock *po = pppox_sk(sk); in pptp_rcv_core()
277 if (!(sk->sk_state & PPPOX_CONNECTED)) { in pptp_rcv_core()
278 if (sock_queue_rcv_skb(sk, skb)) in pptp_rcv_core()
384 struct sock *sk = sock->sk; in pptp_bind() local
386 struct pppox_sock *po = pppox_sk(sk); in pptp_bind()
392 lock_sock(sk); in pptp_bind()
394 if (sk->sk_state & PPPOX_DEAD) { in pptp_bind()
399 if (sk->sk_state & PPPOX_BOUND) { in pptp_bind()
407 sk->sk_state |= PPPOX_BOUND; in pptp_bind()
410 release_sock(sk); in pptp_bind()
417 struct sock *sk = sock->sk; in pptp_connect() local
419 struct pppox_sock *po = pppox_sk(sk); in pptp_connect()
434 lock_sock(sk); in pptp_connect()
436 if (sk->sk_state & PPPOX_CONNECTED) { in pptp_connect()
442 if (sk->sk_state & PPPOX_DEAD) { in pptp_connect()
452 po->chan.private = sk; in pptp_connect()
460 sk_setup_caps(sk, &rt->dst); in pptp_connect()
475 sk->sk_state |= PPPOX_CONNECTED; in pptp_connect()
478 release_sock(sk); in pptp_connect()
492 sp.sa_addr.pptp = pppox_sk(sock->sk)->proto.pptp.src_addr; in pptp_getname()
501 struct sock *sk = sock->sk; in pptp_release() local
505 if (!sk) in pptp_release()
508 lock_sock(sk); in pptp_release()
510 if (sock_flag(sk, SOCK_DEAD)) { in pptp_release()
511 release_sock(sk); in pptp_release()
515 po = pppox_sk(sk); in pptp_release()
519 pppox_unbind_sock(sk); in pptp_release()
520 sk->sk_state = PPPOX_DEAD; in pptp_release()
522 sock_orphan(sk); in pptp_release()
523 sock->sk = NULL; in pptp_release()
525 release_sock(sk); in pptp_release()
526 sock_put(sk); in pptp_release()
531 static void pptp_sock_destruct(struct sock *sk) in pptp_sock_destruct() argument
533 if (!(sk->sk_state & PPPOX_DEAD)) { in pptp_sock_destruct()
534 del_chan(pppox_sk(sk)); in pptp_sock_destruct()
535 pppox_unbind_sock(sk); in pptp_sock_destruct()
537 skb_queue_purge(&sk->sk_receive_queue); in pptp_sock_destruct()
538 dst_release(rcu_dereference_protected(sk->sk_dst_cache, 1)); in pptp_sock_destruct()
544 struct sock *sk; in pptp_create() local
548 sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pptp_sk_proto, kern); in pptp_create()
549 if (!sk) in pptp_create()
552 sock_init_data(sock, sk); in pptp_create()
557 sk->sk_backlog_rcv = pptp_rcv_core; in pptp_create()
558 sk->sk_state = PPPOX_NONE; in pptp_create()
559 sk->sk_type = SOCK_STREAM; in pptp_create()
560 sk->sk_family = PF_PPPOX; in pptp_create()
561 sk->sk_protocol = PX_PROTO_PPTP; in pptp_create()
562 sk->sk_destruct = pptp_sock_destruct; in pptp_create()
564 po = pppox_sk(sk); in pptp_create()
578 struct sock *sk = (struct sock *) chan->private; in pptp_ppp_ioctl() local
579 struct pppox_sock *po = pppox_sk(sk); in pptp_ppp_ioctl()