[Xenomai-git] Gilles Chanteperdrix : icmp: forward unused packet to proxy
Module: xenomai-gch Branch: stable-3.0.x Commit: 242c6b4bf525b131e5efaf206a7b784af549e8c2 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=242c6b4bf525b131e5efaf206a7b784af549e8c2 Author: Gilles ChanteperdrixDate: Wed Jun 15 13:18:56 2016 +0200 icmp: forward unused packet to proxy in order to get ping from the proxy interface to work --- kernel/drivers/net/stack/ipv4/icmp.c | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/kernel/drivers/net/stack/ipv4/icmp.c b/kernel/drivers/net/stack/ipv4/icmp.c index 58d97cd..f5c1ec6 100644 --- a/kernel/drivers/net/stack/ipv4/icmp.c +++ b/kernel/drivers/net/stack/ipv4/icmp.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -144,10 +145,16 @@ void rt_icmp_cleanup_echo_requests(void) */ static void rt_icmp_discard(struct rtskb *skb) { +#ifdef CONFIG_RTNET_ADDON_PROXY +if (rt_ip_fallback_handler) { +/* If a fallback handler for IP protocol has been installed, + * call it. */ + __rtskb_push(skb, skb->nh.iph->ihl*4 + sizeof(struct icmphdr)); +rt_ip_fallback_handler(skb); +} +#endif /* CONFIG_RTNET_ADDON_PROXY */ } - - static int rt_icmp_glue_reply_bits(const void *p, unsigned char *to, unsigned int offset, unsigned int fraglen) { @@ -446,6 +453,9 @@ static struct rt_icmp_control rt_icmp_pointers[NR_ICMP_TYPES+1] = */ struct rtsocket *rt_icmp_dest_socket(struct rtskb *skb) { +if (list_empty(_calls)) + return NULL; + rt_socket_reference(icmp_socket); return icmp_socket; } ___ Xenomai-git mailing list Xenomai-git@xenomai.org https://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : icmp: forward unused packet to proxy
Module: xenomai-gch Branch: next Commit: e79435d551dc57fa6200bba5161843f409ea8a8a URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=e79435d551dc57fa6200bba5161843f409ea8a8a Author: Gilles ChanteperdrixDate: Wed Jun 15 13:18:56 2016 +0200 icmp: forward unused packet to proxy in order to get ping from the proxy interface to work --- kernel/drivers/net/stack/ipv4/icmp.c | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/kernel/drivers/net/stack/ipv4/icmp.c b/kernel/drivers/net/stack/ipv4/icmp.c index 58d97cd..f5c1ec6 100644 --- a/kernel/drivers/net/stack/ipv4/icmp.c +++ b/kernel/drivers/net/stack/ipv4/icmp.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -144,10 +145,16 @@ void rt_icmp_cleanup_echo_requests(void) */ static void rt_icmp_discard(struct rtskb *skb) { +#ifdef CONFIG_RTNET_ADDON_PROXY +if (rt_ip_fallback_handler) { +/* If a fallback handler for IP protocol has been installed, + * call it. */ + __rtskb_push(skb, skb->nh.iph->ihl*4 + sizeof(struct icmphdr)); +rt_ip_fallback_handler(skb); +} +#endif /* CONFIG_RTNET_ADDON_PROXY */ } - - static int rt_icmp_glue_reply_bits(const void *p, unsigned char *to, unsigned int offset, unsigned int fraglen) { @@ -446,6 +453,9 @@ static struct rt_icmp_control rt_icmp_pointers[NR_ICMP_TYPES+1] = */ struct rtsocket *rt_icmp_dest_socket(struct rtskb *skb) { +if (list_empty(_calls)) + return NULL; + rt_socket_reference(icmp_socket); return icmp_socket; } ___ Xenomai-git mailing list Xenomai-git@xenomai.org https://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : icmp: forward unused packet to proxy
Module: xenomai-gch Branch: next Commit: 3c48fee2b7a7b934eb5eea0074b972f2a25cff9d URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=3c48fee2b7a7b934eb5eea0074b972f2a25cff9d Author: Gilles ChanteperdrixDate: Wed Jun 15 13:18:56 2016 +0200 icmp: forward unused packet to proxy in order to get ping from the proxy interface to work --- kernel/drivers/net/stack/ipv4/icmp.c | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/kernel/drivers/net/stack/ipv4/icmp.c b/kernel/drivers/net/stack/ipv4/icmp.c index 58d97cd..f5c1ec6 100644 --- a/kernel/drivers/net/stack/ipv4/icmp.c +++ b/kernel/drivers/net/stack/ipv4/icmp.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -144,10 +145,16 @@ void rt_icmp_cleanup_echo_requests(void) */ static void rt_icmp_discard(struct rtskb *skb) { +#ifdef CONFIG_RTNET_ADDON_PROXY +if (rt_ip_fallback_handler) { +/* If a fallback handler for IP protocol has been installed, + * call it. */ + __rtskb_push(skb, skb->nh.iph->ihl*4 + sizeof(struct icmphdr)); +rt_ip_fallback_handler(skb); +} +#endif /* CONFIG_RTNET_ADDON_PROXY */ } - - static int rt_icmp_glue_reply_bits(const void *p, unsigned char *to, unsigned int offset, unsigned int fraglen) { @@ -446,6 +453,9 @@ static struct rt_icmp_control rt_icmp_pointers[NR_ICMP_TYPES+1] = */ struct rtsocket *rt_icmp_dest_socket(struct rtskb *skb) { +if (list_empty(_calls)) + return NULL; + rt_socket_reference(icmp_socket); return icmp_socket; } ___ Xenomai-git mailing list Xenomai-git@xenomai.org https://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : icmp: forward unused packet to proxy
Module: xenomai-gch Branch: stable-3.0.x Commit: de074156b5a0def7f37475e38a8ae4d4f44916f2 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=de074156b5a0def7f37475e38a8ae4d4f44916f2 Author: Gilles ChanteperdrixDate: Wed Jun 15 13:18:56 2016 +0200 icmp: forward unused packet to proxy in order to get ping from the proxy interface to work --- kernel/drivers/net/stack/ipv4/icmp.c | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/kernel/drivers/net/stack/ipv4/icmp.c b/kernel/drivers/net/stack/ipv4/icmp.c index 58d97cd..f5c1ec6 100644 --- a/kernel/drivers/net/stack/ipv4/icmp.c +++ b/kernel/drivers/net/stack/ipv4/icmp.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -144,10 +145,16 @@ void rt_icmp_cleanup_echo_requests(void) */ static void rt_icmp_discard(struct rtskb *skb) { +#ifdef CONFIG_RTNET_ADDON_PROXY +if (rt_ip_fallback_handler) { +/* If a fallback handler for IP protocol has been installed, + * call it. */ + __rtskb_push(skb, skb->nh.iph->ihl*4 + sizeof(struct icmphdr)); +rt_ip_fallback_handler(skb); +} +#endif /* CONFIG_RTNET_ADDON_PROXY */ } - - static int rt_icmp_glue_reply_bits(const void *p, unsigned char *to, unsigned int offset, unsigned int fraglen) { @@ -446,6 +453,9 @@ static struct rt_icmp_control rt_icmp_pointers[NR_ICMP_TYPES+1] = */ struct rtsocket *rt_icmp_dest_socket(struct rtskb *skb) { +if (list_empty(_calls)) + return NULL; + rt_socket_reference(icmp_socket); return icmp_socket; } ___ Xenomai-git mailing list Xenomai-git@xenomai.org https://xenomai.org/mailman/listinfo/xenomai-git