[Users] Domain: is_from_local() is case sensitive in caching mode.

Klaus Darilion klaus.mailinglists at pernau.at
Mon Mar 13 11:37:24 CET 2006


regards
klaus

-------- Original Message --------
Subject: [Serdev] domain module: case insensitive error in hash function
Date: Thu, 17 Nov 2005 13:42:14 +0100
From: Axel Böger <Axel.Boeger at freenet-ag.de>
To: <serdev at iptel.org>

Hi,

domain module in caching mode does not match when domain-name from SIP 
request and DB
differ in use of small characters.
The hash-function in modules/domain/hash.c is case-sensitive. For example
hash('iptel.org') != hash('Iptel.org').
This could be fixed with following patch:

--- sip_router/modules/domain/hash.c    2004-08-24 10:58:27.000000000 +0200
+++ sip_router-patched/modules/domain/hash.c    2005-11-17 
13:34:36.314480955 +0100
@@ -35,6 +35,7 @@
  #include <stdlib.h>
  #include <string.h>
  #include <stdio.h>
+#include <ctype.h>


  /* String hash function */
@@ -49,7 +50,7 @@
    len = domain->len;

    for (i = 0; i < len; i++) {
-         h = ( h << 5 ) - h + *(p + i);
+         h = ( h << 5 ) - h + tolower(*(p + i));
    }

    return h % HASH_SIZE;


   Regards,
     Axel

_______________________________________________
Serdev mailing list
Serdev at iptel.org
http://mail.iptel.org/mailman/listinfo/serdev





Papadopoulos Georgios wrote:
> Hello,
> 
> I have been looking into the code. strncasecmp does case insensitive
> comparison, so this part is correct.
> My guess is that the hash function should use the lowercase domain. 
> 
> In my case I have in the domain table "i-call.gr" and "sip.i-call.gr".
> If the From header is .... at i-Call.gr then is_from_local() returns false
> (in caching mode).
> 
> I hope this helps
> 
> George
> 
>> -----Original Message-----
>> From: Bogdan-Andrei Iancu [mailto:bogdan at voice-system.ro] 
>> Sent: Monday, March 13, 2006 11:32 AM
>> To: Papadopoulos Georgios
>> Cc: daniel at voice-system.ro; users at openser.org; Juha Heinanen
>> Subject: Re: [Users] Domain: is_from_local() is case 
>> sensitive in caching mode.
>>
>> Hi Georgios,
>>
>> indeed, the search through the cache is done case sensitive  
>> via strncasesmp().
>>
>> Juha, souldn't the domain matching be case insensitive?
>>
>> regards,
>> bogdan
>>
>>
>> Georgios Papadopoulos wrote:
>>
>>> I am pretty sure (I am using OpenSER 1.0.0). 
>>> What about the part where the table is cached into memory? Do you do 
>>> select lower(domain) from domain? I tried briefly to find 
>> the relevant 
>>> piece of code but I couldn't.
>>>
>>> George
>>>
>>>
>>>  
>>>
>>>> -----Original Message-----
>>>> From: Daniel-Constantin Mierla [mailto:daniel at voice-system.ro]
>>>> Sent: Saturday, March 11, 2006 3:50 PM
>>>> To: Papadopoulos Georgios
>>>> Cc: users at openser.org
>>>> Subject: Re: [Users] Domain: is_from_local() is case sensitive in 
>>>> caching mode.
>>>>
>>>> Hello,
>>>>
>>>> On 03/10/06 17:51, Papadopoulos Georgios wrote:
>>>>    
>>>>
>>>>> Hello,
>>>>>
>>>>> I have noticed that is_from_local in the Domain module is 
>>>>> case-sensitive if the module is in caching mode. In
>>>>>      
>>>>>
>>>> non-caching mode
>>>>    
>>>>
>>>>> it is case insensitive.
>>>>> Could this be fixed in the future? 
>>>>>  
>>>>>      
>>>>>
>>>> are you sure? I was looking in the sources and the comparison is 
>>>> case-insensitive.
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>    
>>>>
>>>>> thank you
>>>>>
>>>>> George
>>>>>
>>>>> Disclaimer
>>>>> The information in this e-mail and any attachments is
>>>>>      
>>>>>
>>>> confidential. It is intended solely for the attention and 
>> use of the 
>>>> named addressee(s). If you are not the intended recipient, 
>> or person 
>>>> responsible for delivering this information to the intended 
>> recipient, 
>>>> please notify the sender immediately. Unless you are the intended 
>>>> recipient or his/her representative you are not authorized to, and 
>>>> must not, read, copy, distribute, use or retain this message or any 
>>>> part of it. E-mail transmission cannot be guaranteed to be 
>> secure or 
>>>> error-free as information could be intercepted, corrupted, lost, 
>>>> destroyed, arrive late or incomplete, or contain viruses.
>>>>    
>>>>
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at openser.org
>>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>>>  
>>>>>      
>>>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openser.org
>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>
>>>  
>>>
>>
> 
> Disclaimer
> The information in this e-mail and any attachments is confidential. It is intended solely for the attention and use of the named addressee(s). If you are not the intended recipient, or person responsible for delivering this information to the intended recipient, please notify the sender immediately. Unless you are the intended recipient or his/her representative you are not authorized to, and must not, read, copy, distribute, use or retain this message or any part of it. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses.
> 
> 
> 
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users





More information about the sr-users mailing list