asterisk lenny 1.4.21.2~dfsg-3 / bristuff/uniqueid-40-manager patch

Philipp Kempgen philipp.kempgen at amooma.de
Wed Nov 4 19:48:43 UTC 2009


Wolfgang Pichler schrieb:

http://translate.googleusercontent.com/translate_c?hl=de&sl=de&tl=en&u=http://lists.alioth.debian.org/pipermail/pkg-voip-maintainers/2009-November/015471.html&prev=hp&rurl=translate.google.de&usg=ALkJrhioVIfmLgQgQMQ-aepNVIJlhXRkJA

> das ganze ist sicher kein bug der große Auswirkungen hat..
> 
> Was aber passiert ist - das die uniqueid nicht mehr konsistent erzeugt
> wird. Es gibt in der channel.c schon in der ast_channel_alloc einen
> Teil der eine uniqueid erzeugt - und es gibt eben durch den Patch die
> funktion ast_alloc_uniqueid die eine uniqueid erzeugt (die letztere
> wird verwendet wenn ein originate über die manager api kommt). Und
> diese beiden erzeugen unterschiedliche uniqueids wenn der SYSTEM_NAME
> nicht gesetzt ist.

I see. Then it's a bug in the Debian package indeed.
Both uniqueid strings should be equal, byte by byte.

> Probleme hat das bei mir in Zusammenhang mit Vicidial Auswertungen
> gemacht - ich weiß zwar noch nicht genau warum - aber irgendwas hat da
> gar nicht hingehauen.
> 
> Es wird wahrscheinlich nicht mal 0,1% der Leute auffallen - aber ich
> wollt es halt schnell melden.
> 
> Mit der 1.6er ist das Problem sowieso weg - also denke ich spare ich
> mir / euch den Eintrag im Bug tracker.

> 2009/11/3 Philipp Kempgen <philipp.kempgen at amooma.de>:
>> Wolfgang Pichler schrieb:
>>
>>> The uniqueid-40-manager patch which gets applied to asterisk in debian
>>> lenny does cause some problems when setting no asterisk system name in
>>> the config - because it builds the uniqueid for cahnnels originated by
>>> manager by the following way:
>>
>>> +char *ast_alloc_uniqueid(void) {
>>> +   char *uniqueid;
>>> +   uniqueid = malloc(64);
>>> +   if (!uniqueid) return NULL;
>>> +   snprintf(uniqueid, 63, "%s-%d-%li.%d", ast_config_AST_SYSTEM_NAME,
>>> ast_mainpid, (long)time(NULL), ast_atomic_fetchadd_int(&uniqueint,
>>> 1));
>>> +   return uniqueid;
>>> +}
>>
>>> As you can see - if ast_config_AST_SYSTEM_NAME is empty - it will
>>> generate a negative uniqueid...
>>
>> I don't see how a uniqueid starting in "-" could cause problems.
>> It's just a string after all rather than a numerical value so it's
>> neither positive nor negative.
>>
>> OTOH skipping the leading "-" if the system name is empty would
>> probably not hurt either.
>>
>>> Could you please change the patch the following way
>>>
>>>    if (ast_strlen_zero(ast_config_AST_SYSTEM_NAME)) {
>>>         snprintf(uniqueid, 63, "%s-%d-%li.%d",
>>> ast_config_AST_SYSTEM_NAME, ast_mainpid, (long)time(NULL),
>>> ast_atomic_fetchadd_int(&uniqueint, 1));
>>>    } else {
>>>         snprintf(uniqueid, 63, "%d-%li.%d", ast_mainpid,
>>> (long)time(NULL), ast_atomic_fetchadd_int(&uniqueint, 1));
>>>    }
>>>
>>> this would give original behaviour back...
>>
>> If you still think this is a bug (even if it might be of severity =
>> wishlist) it should be reported on the bug tracker I guess.
>> http://bugs.debian.org


    Philipp Kempgen
-- 
AMOOMA GmbH - Bachstr. 126 - 56566 Neuwied  ->  http://www.amooma.de
Geschäftsführer: Stefan Wintermeyer, Handelsregister: Neuwied B14998
Asterisk: http://the-asterisk-book.com - http://das-asterisk-buch.de
Videos of the AMOOCON VoIP conference 2009 ->  http://www.amoocon.de
-- 



More information about the Pkg-voip-maintainers mailing list