Re: [PATCH] BUG on DLR parsing
Alejandro Guerrieri <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
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>
>>
>