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