[PATCH] BUG on DLR parsing
Alejandro Guerrieri
aguerrieri at kannel.org
Thu Apr 30 15:44:47 CEST 2009
Ooook, didn't know about that one :)
Thanks!
--
Alejandro Guerrieri
aguerrieri at kannel.org
On 30/04/2009, at 15:32, Alexander Malysh wrote:
>
> Am 30.04.2009 um 15:20 schrieb Alejandro Guerrieri:
>
>> Ok, I definitely could do that, the only problem is how will I test
>> for it afterwards (not sure if my test binds work with that tlv).
>>
>> I'll figure out something I guess ;)
>
> modify test/drive_smpp.c ;)
>
>>
>> Regards,
>> --
>> Alejandro Guerrieri
>> aguerrieri at kannel.org
>>
>>
>>
>> On 30/04/2009, at 14:18, Alexander Malysh wrote:
>>
>>> Hi,
>>>
>>> +1 for this patch :)
>>>
>>> As to the original patch, you should first check for
>>> network_error_code TLV before going to parse
>>> message payload. Only of it's not there you should parse payload.
>>> So in this form -1 for this patch.
>>>
>>> Thanks,
>>> Alex
>>>
>>> P.S. Please integrate both patches together.
>>>
>>> Am 30.04.2009 um 12:46 schrieb Alejandro Guerrieri:
>>>
>>>> Alex,
>>>>
>>>> What about something like this (in addition to my former patch):
>>>>
>>>> Index: gw/smsc/smsc_smpp.c
>>>> ===================================================================
>>>> --- gw/smsc/smsc_smpp.c (revision 29)
>>>> +++ gw/smsc/smsc_smpp.c (working copy)
>>>> @@ -1374,11 +1374,16 @@
>>>> * we found the delivery report in our storage, so recode the
>>>> * message structure.
>>>> * The DLR trigger URL is indicated by msg->sms.dlr_url.
>>>> - * Add the DLR error code as billing identifier.
>>>> + * Add the DLR error code to meta-data.
>>>> */
>>>> dlrmsg->sms.msgdata = octstr_duplicate(respstr);
>>>> dlrmsg->sms.sms_type = report_mo;
>>>> - dlrmsg->sms.binfo = octstr_duplicate(err);
>>>> + if (err != NULL) {
>>>> + if (dlrmsg->sms.meta_data == NULL) {
>>>> + dlrmsg->sms.meta_data = octstr_create("");
>>>> + }
>>>> + meta_data_set_value(dlrmsg->sms.meta_data, "smpp",
>>>> octstr_imm("dlr_err"), err, 1);
>>>> + }
>>>> } else {
>>>> error(0,"SMPP[%s]: got DLR but could not find message or was
>>>> not interested "
>>>> "in it id<%s> dst<%s>, type<%d>",
>>>>
>>>> Regards,
>>>> --
>>>> Alejandro Guerrieri
>>>> aguerrieri at kannel.org
>>>>
>>>>
>>>>
>>>> On 30/04/2009, at 9:30, Alexander Malysh wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I don't like passing err in binfo field. IMO binfo should be
>>>>> used for billing identifier but not for smpp error code.
>>>>> I would prefer to see patch that drop err from binfo and make
>>>>> use of meta-data (group dlr?).
>>>>>
>>>>> Thanks,
>>>>> Alex
>>>>>
>>>>> Am 29.04.2009 um 18:10 schrieb Alejandro Guerrieri:
>>>>>
>>>>>> This patch fixes a bug when parsing DLR's:
>>>>>>
>>>>>> As the code is now, if a DLR having a receipted_message_id, the
>>>>>> DLR text is not parsed, so the "err" and "stat" fields are empty.
>>>>>>
>>>>>> In particular, the "err" code is being passed on the "binfo"
>>>>>> field, so this remained empty if a receipted_message_id is
>>>>>> present (because the sscanf code was not executed).
>>>>>>
>>>>>> Attached patch fixes that part, so the "err" parameter is
>>>>>> present on the binfo field on all cases.
>>>>>>
>>>>>> Regards,
>>>>>> --
>>>>>> Alejandro Guerrieri
>>>>>> aguerrieri at kannel.org
>>>>>>
>>>>>>
>>>>>> <kannel-smsc-dlr-err.patch>
>>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the devel
mailing list