From: Herbert Poetzl (herbert_at_13thfloor.at)
Date: Thu 04 Sep 2003 - 00:55:31 BST
On Thu, Sep 04, 2003 at 01:43:58AM +0200, mhepp_at_edunix.cz wrote:
> Hello,
> 
> I was compilling vanilla kernel patched with ctx-17a patch, I was not
> able to compile code udp.c if ipv6 support was not selected.
> 
> I was searching and I found bug in file linux/net/ipv4/udp.c.
> 
> It was not clear to me what patch author intended...
> but there is for sure a bug.
> 
> look for "#if defined(CONFIG_IPV6)" in the code:
maybe a look at http://www.13thfloor.at/VServer/Patches.shtml
would be advantageous ...
best,
Herbert
> 	Michal Heppler
> 
> --
> 
> /* UDP is nearly always wildcards out the wazoo, it makes no sense to
>  * try
>  * harder than this. -DaveM
>  */
> struct sock *udp_v4_lookup_longway(u32 saddr, u16 sport, u32 daddr,
> u16 dport, int dif)
> {
>         struct sock *sk, *result = NULL;
>         unsigned short hnum = ntohs(dport);
>         int badness = -1;
> 
>         for(sk = udp_hash[hnum & (UDP_HTABLE_SIZE - 1)]; sk != NULL; sk
> = sk->next) {
>                 if(sk->num == hnum && !ipv6_only_sock(sk)) {
>                         int score;
> #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
>                         score = sk->family == PF_INET ? 1 : 0;
> #else
>                         }else if (sk->ip_info != NULL){
>                                 if (udp_in_list (sk->ip_info,daddr)){
>                                         score++;
>                                 }else{
>                                         continue;
>                                 }
>                         score = 1;
> #endif
>                         if(sk->rcv_saddr) {
>                                 if(sk->rcv_saddr != daddr)
>                                         continue;
>                                 score+=2;
> 
> ,,,
> 
> 
>                         }
>                 }
>         }
>         return result;
> }
>