Fair point, ignore this patch in that case :)

On 26 September 2016 at 19:43, Stipe Tolj <st...@kannel.org> wrote:

> Am 26.09.2016 19:38, schrieb Donald Jackson:
>
>> As I say this is semantics, its not entirely necessary.
>>
>> Usually in library functions they are compatible with each other, eg:
>>
>> SMPP_PDU *pdu = smpp_pdu_unpack(smpp_pdu_pack(data));
>>
>> Would work, but in Kannel's case this doesn't work as the one function
>> uses length and the other does not. So the third party user has to now
>> worry about PDU internals to get the functions to work together.
>>
>
> yeah, but looping in a "use-less" if condition for ever SMPP unpacking,
> JUST to make it sweet for the 3rd package is not justified IMO.
>
> I.e. here is what I do in smppbox's gw lib code for duplicating an SMPP
> PDU struct:
>
> SMPP_PDU *smpp_pdu_duplicate(Octstr *esme, SMPP_PDU *pdu)
> {
>         SMPP_PDU *ret = NULL;
>         Octstr *os, *os2;
>
>         gw_assert(pdu != NULL);
>
>         /*
>          * We use a kludge here, we pack the PDU
>          * then duplicate the packed data and unpack
>          * it again to a PDU structure.
>          */
>         if ((os = SMPP_PDU_PACK(esme, pdu)) != NULL) {
>                 /* remove first 4 bytes, length indicator */
>                 os2 = octstr_copy(os, 4, octstr_len(os)-4);
>                 octstr_destroy(os);
>                 ret = SMPP_PDU_UNPACK(esme, os2);
>                 octstr_destroy(os2);
>         }
>
>         return ret;
>
> }
>
> Stipe
>
> --
> Best Regards,
> Stipe Tolj
>
> -------------------------------------------------------------------
> Düsseldorf, NRW, Germany
>
> Kannel Foundation                 tolj.org system architecture
> http://www.kannel.org/            http://www.tolj.org/
>
> stolj at kannel.org               st at tolj.org
> -------------------------------------------------------------------
>
>


-- 
Donald Jackson

Reply via email to