Hi

following bug in SMPP code in msg_to_pdu:

     /*
      * set the esm_class field
      * default is store and forward, plus udh and rpi if requested
      */
     pdu->u.submit_sm.esm_class = ESM_CLASS_STORE_AND_FORWARD_MODE;
     if (octstr_len(msg->sms.udhdata))
         pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class &
             ESM_CLASS_UDH_INDICATOR;
     if (msg->sms.rpi)
         pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class &
             ESM_CLASS_RPI;


surely this should be
......
         pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class |
             ESM_CLASS_UDH_INDICATOR;
.....
         pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class |
             ESM_CLASS_RPI;


Here is the patch:
--- ../cvs/gateway/gw/smsc/smsc_smpp.c  Thu Aug 15 21:02:40 2002
+++ ./smsc_smpp.c       Mon Aug 19 16:08:43 2002
@@ -335,10 +335,10 @@
       */
      pdu->u.submit_sm.esm_class = ESM_CLASS_STORE_AND_FORWARD_MODE;
      if (octstr_len(msg->sms.udhdata))
-        pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class &
+        pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class |
              ESM_CLASS_UDH_INDICATOR;
      if (msg->sms.rpi)
-        pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class &
+        pdu->u.submit_sm.esm_class = pdu->u.submit_sm.esm_class |
              ESM_CLASS_RPI;

      /*



Nisan


Reply via email to