Re: incorrect comparison of ppg_service_name and msg->sms.service in smsbox.c:obey_request_thread()
Aarno Syvänen <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Now, smsbox really shows what code would look like if you just hack
on. Knowing this very well, being one of these hackers ;)
I will test this. Thanks for reporting.
Aarno
On 10.2.2005, at 16:19, Stipe Tolj wrote:
> Davy Chan wrote:
>
>> I've been looking at this off and on since Jan of this year. It was
>> sparked by Shyam Kumar's problem with dlr-url
>> ("Subject: dlr-url and dlr-mask").
>> Basically, if you have a sendsms-user group with a dlr-url defined
>> _AND_
>> a PPG group defined within the same config file, the dlr-url will
>> not be instantiated since the call to urltrans_find_service()
>> is never called.
>> I'm looking at the following code in
>> gateway/gw/smsbox.c:obey_request_thread():
>> /*
>> * no smsbox services when we are doing ppg dlr - so trans would be
>> * NULL in this case.
>> */
>> if (dreport) {
>> if (msg->sms.service == NULL || (msg->sms.service != NULL &&
>> ppg_service_name != NULL &&
>> octstr_compare(msg->sms.service, ppg_service_name) != 0)) {
>> trans = NULL;
>> } else {
>> trans = urltrans_find_service(translations, msg);
>> }
>> info(0, "Starting delivery report <%s> from <%s>",
>> octstr_get_cstr(msg->sms.service),
>> octstr_get_cstr(msg->sms.sender));
>> } else {
>> In my opinion, the comparison to determine if the DLR is for a PPG
>> initiated WAP Push is incorrect. The current logic is:
>> IF the sms.service is not defined OR
>> (when sms.service is defined and ppg_service_name is defined
>> AND sms.service _NOT_EQUAL_ to ppg_service_name)
>> THEN
>> Don't find the translation structure associated with the service
>> ELSE
>> Do find the translation structure associated with the service
>> I assume that the _NOT_EQUAL_ should actually be EQUAL and the 'if'
>> comparision should be:
>> if (msg->sms.service == NULL || (msg->sms.service != NULL &&
>> ppg_service_name != NULL &&
>> octstr_compare(msg->sms.service, ppg_service_name) == 0)) {
>> which implies:
>> Don't find the translation structure associated with the service
>> IF the sms.service is not defined OR
>> (when both sms.service and ppg_service_name exists
>> AND sms.service EQUALS ppg_service_name)
>> Am I correct in my assumptions that this is a bug? I'm not sure since
>> I'm not too familar with the PPG side of Kannel just yet. I'm not
>> sure there won't be a time when a PPG service name is the same as
>> the value inside the sms.service (since it seems that sms.service is
>> set by either the 'name =' or 'username =' declarations).
>> See ya...
>
> ok, Aarno should state on this? Aarno?
>
> Stipe
>
> mailto:stolj_{at}_wapme.de
> -------------------------------------------------------------------
> Wapme Systems AG
>
> Vogelsanger Weg 80
> 40470 Düsseldorf, NRW, Germany
>
> phone: +49.211.74845.0
> fax: +49.211.74845.299
>
> mailto:info_{at}_wapme-systems.de
> http://www.wapme-systems.de/
> -------------------------------------------------------------------
>