Re: [PATCH] SMPP

David Chkhartishvili <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Organization MagtiCom Ltd.
Message-ID <[email protected]>
Here is output from patch utlity:

patch -p0 < smsc_smpp.diff

patching file ./smsc_smpp.c
Hunk #1 FAILED at 97.
Hunk #2 FAILED at 119.
Hunk #3 FAILED at 154.
Hunk #4 FAILED at 669.
Hunk #5 FAILED at 790.
Hunk #6 succeeded at 1111 with fuzz 2.
Hunk #7 FAILED at 1203.
6 out of 7 hunks FAILED -- saving rejects to file 
cvs/gateway/gw/smsc/smsc_smpp.c.rej

I've tryed to patch current CVS version.
Please correct me if patch command was wrong.

Thanks

Nisan Bloch wrote:

> Hi
>
> A patch to help resolve the fact that different SMSCs use different 
> standards for the number base  of the msg_id in the submit_sm_resp and 
> deliver_sm.. they use hex or decimal or a mixture...
>
> Here is a patch lets you set them independently.
>
> The config file works like this.
> smpp-msg-id-type;   
>
> bit 1 submit_sm_resp
> bit 2 deliver_sm
> if he bit is set the value is hex
>
> 0x00 deliver_sm decimal, submit_sm_resp decimal
> 0x01 (default) deliver_sm decimal, submit_sm_resp hex
> 0x02 deliver_sm hex, submit_sm_resp decimal
> 0x03 deliver_sm hex, submit_sm_resp hex *
>
> nisan
>
>
> --- cvs/gateway/gw/smsc/smsc_smpp.c     Mon Aug 19 20:57:59 2002
> +++ ./smsc_smpp.c       Mon Aug 19 20:54:30 2002
> @@ -97,6 +97,16 @@
>      int version;
>      int priority;       /* set default priority for messages */
>      time_t throttling_err_time;
> +    int smpp_msg_id_type; /* msg id in hex or decimal..
> +                          * bit 1 submit_sm_resp bit 2 deliver_sm &
> +                          * bit set value is hex
> +                          * 0x00 deliver_sm decimal, submit_sm_resp 
> decimal
> +                          * 0x01 (default) deliver_sm decimal, 
> submit_sm_resp hex
> +                          * 0x02 deliver_sm hex, submit_sm_resp decimal
> +                          * 0x03 deliver_sm hex, submit_sm_resp hex *
> +                          */
> +
> +
>      SMSCConn *conn;
>  } SMPP;
>
> @@ -109,7 +119,8 @@
>                           int dest_addr_ton, int dest_addr_npi,
>                           int alt_dcs, int enquire_link_interval,
>                           int max_pending_submits, int reconnect_delay,
> -                         int version, int priority, Octstr *my_number)
> +                         int version, int priority, Octstr *my_number,
> +                                                int smpp_msg_id_type)
>  {
>      SMPP *smpp;
>
> @@ -143,6 +154,7 @@
>      smpp->priority = priority;
>      smpp->conn = conn;
>      smpp->throttling_err_time = 0;
> +       smpp->smpp_msg_id_type = smpp_msg_id_type;
>
>      return smpp;
>  }
> @@ -657,7 +669,12 @@
>
>                  if (msgid != NULL) {
>                      Octstr *tmp;
> +                    if ((smpp->smpp_msg_id_type & 0x02))
> +                        tmp = octstr_format("%ld", 
> strtol(octstr_get_cstr(msgid), NULL, 16));
> +                    else
>                      tmp = octstr_format("%ld", 
> strtol(octstr_get_cstr(msgid), NULL, 10));
> +
> +
>                      dlrmsg = dlr_find(octstr_get_cstr(smpp->conn->id),
>                                        octstr_get_cstr(tmp), /* smsc 
> message id */
>                                        
> octstr_get_cstr(pdu->u.deliver_sm.destination_addr), /* destination */
> @@ -773,9 +790,14 @@
>              } else {
>                  Octstr *tmp;
>
> -                /* deliver gives mesg id in decimal, submit_sm in 
> hex.. */
> +                if ((smpp->smpp_msg_id_type & 0x01))
>                  tmp = octstr_format("%ld", strtol(
>                          
> octstr_get_cstr(pdu->u.submit_sm_resp.message_id), NULL, 16));
> +                else
> +                    tmp = octstr_format("%ld", strtol(
> +                        
> octstr_get_cstr(pdu->u.submit_sm_resp.message_id), NULL, 10));
> +
> +
>                  /* SMSC ACK.. now we have the message id. */
>
>                  if (msg->sms.dlr_mask & 
> (DLR_SMSC_SUCCESS|DLR_SUCCESS|DLR_FAIL|DLR_BUFFERED))
> @@ -1089,6 +1111,7 @@
>      long reconnect_delay;
>      long version;
>      long priority;
> +       long smpp_msg_id_type;
>
>
>      my_number = NULL;
> @@ -1180,13 +1203,16 @@
>      if (cfg_get_integer(&priority, grp, octstr_imm("priority")) == -1)
>          priority = SMPP_DEFAULT_PRIORITY;
>
> +    if (cfg_get_integer(&smpp_msg_id_type, grp, 
> octstr_imm("smpp-msg-id-type")) == -1)
> +        smpp_msg_id_type = 0x01; /* default(0x01) deliver_sm decimal,
> + submit_sm_resp hex */
>
>      smpp = smpp_create(conn, host, port, receive_port, system_type,
>                        username, password, address_range, our_host,
>                         source_addr_ton, source_addr_npi, dest_addr_ton,
>                         dest_addr_npi, alt_dcs, enquire_link_interval,
>                         max_pending_submits, reconnect_delay,
> -                       version, priority, my_number);
> +                       version, priority, my_number, smpp_msg_id_type);
>
>      conn->data = smpp;
>      conn->name = octstr_format("SMPP:%S:%d/%d:%S:%S",
>
>
>


-- 
David Chkhartishvili
Tel: 995 99 182418
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.