Re: [PATCH] BUG on DLR parsing
Alexander Malysh <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
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
> [email protected]
>
>
>
> 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
>>> [email protected]
>>>
>>>
>>> <kannel-smsc-dlr-err.patch>
>>>
>>
>