summaryrefslogtreecommitdiffstats
path: root/net/ipv4/udp.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r--net/ipv4/udp.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index d80312ddbb8a..3563788d064f 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -604,6 +604,19 @@ static inline struct sock *__udp4_lib_lookup_skb(struct sk_buff *skb,
604 udptable, skb); 604 udptable, skb);
605} 605}
606 606
607struct sock *udp4_lib_lookup_skb(struct sk_buff *skb,
608 __be16 sport, __be16 dport)
609{
610 const struct iphdr *iph = ip_hdr(skb);
611 const struct net_device *dev =
612 skb_dst(skb) ? skb_dst(skb)->dev : skb->dev;
613
614 return __udp4_lib_lookup(dev_net(dev), iph->saddr, sport,
615 iph->daddr, dport, inet_iif(skb),
616 &udp_table, skb);
617}
618EXPORT_SYMBOL_GPL(udp4_lib_lookup_skb);
619
607/* Must be called under rcu_read_lock(). 620/* Must be called under rcu_read_lock().
608 * Does increment socket refcount. 621 * Does increment socket refcount.
609 */ 622 */