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