diff options
Diffstat (limited to 'net/ipv4/inet_connection_sock.c')
-rw-r--r-- | net/ipv4/inet_connection_sock.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index ae20281d8deb..359f48cec99a 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c | |||
@@ -648,3 +648,22 @@ void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr) | |||
648 | } | 648 | } |
649 | 649 | ||
650 | EXPORT_SYMBOL_GPL(inet_csk_addr2sockaddr); | 650 | EXPORT_SYMBOL_GPL(inet_csk_addr2sockaddr); |
651 | |||
652 | int inet_csk_ctl_sock_create(struct socket **sock, unsigned short family, | ||
653 | unsigned short type, unsigned char protocol) | ||
654 | { | ||
655 | int rc = sock_create_kern(family, type, protocol, sock); | ||
656 | |||
657 | if (rc == 0) { | ||
658 | (*sock)->sk->sk_allocation = GFP_ATOMIC; | ||
659 | inet_sk((*sock)->sk)->uc_ttl = -1; | ||
660 | /* | ||
661 | * Unhash it so that IP input processing does not even see it, | ||
662 | * we do not wish this socket to see incoming packets. | ||
663 | */ | ||
664 | (*sock)->sk->sk_prot->unhash((*sock)->sk); | ||
665 | } | ||
666 | return rc; | ||
667 | } | ||
668 | |||
669 | EXPORT_SYMBOL_GPL(inet_csk_ctl_sock_create); | ||