[PATCH] new DLR scheme - fixes for AT2, SMPP and dlr.c

"Oded Arbel" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Hi Stipe.
 
Attached is a patch to fully adapt AT2 to the new DLR scheme (in addition to the other patch I sent today - not instead of), along with a patch to do the same for SMPP, and a small fix for dlr.c to get the dlr_url member of the message structure created properly also in the dlr_find_{mysql|sdb} functions.
 
--
Oded Arbel
m-Wise mobile solutions
[email protected]
 
+972-9-9581711 (116)
+972-67-340014
 
::..
The ultimate goal of mathematics is to eliminate all need for intelligent thought. 
 -- Graham, Knuth and Patashnik, ``Concrete Mathematics'', (p. 56)
dlr.patch (application/octet-stream, 3.9 KB)
--- gateway/gw/dlr.c	2002-09-06 00:10:02.000000000 +0300
+++ gateway/gw/dlr.c	2002-09-06 00:09:08.000000000 +0300
@@ -621,7 +623,7 @@
         msg->sms.smsc_id = octstr_create(smsc);
     	msg->sms.sender = octstr_create(dst);
         msg->sms.receiver = octstr_create("000");
-        msg->sms.msgdata = octstr_duplicate(dlr_url);
+        msg->sms.dlr_url = octstr_duplicate(dlr_url);
         time(&msg->sms.time);
         debug("dlr.dlr", 0, "created DLR message: %s", octstr_get_cstr(msg->sms.msgdata));
     } else {
@@ -741,7 +745,7 @@
         msg->sms.smsc_id = octstr_create(smsc);
     	msg->sms.sender = octstr_create(dst);
         msg->sms.receiver = octstr_create("000");
-        msg->sms.msgdata = octstr_duplicate(dlr_url);
+        msg->sms.dlr_url = octstr_duplicate(dlr_url);
         time(&msg->sms.time);
         debug("dlr.dlr", 0, "created DLR message: %s", octstr_get_cstr(msg->sms.msgdata));
     } else {
--- gateway/gw/smsc/smsc_smpp.c	2002-09-04 20:42:57.000000000 +0300
+++ gateway/gw/smsc/smsc_smpp.c	2002-09-06 00:16:24.000000000 +0300
@@ -778,13 +800,10 @@
                     dlrmsg->sms.smsc_id = octstr_duplicate(smpp->conn->id); 
                     dlrmsg->sms.sender = octstr_duplicate(msg->sms.receiver); 
                     dlrmsg->sms.receiver = octstr_create("000"); 
-                    dlrmsg->sms.msgdata = octstr_duplicate(msg->sms.dlr_url); 
+                    dlrmsg->sms.dlr_url = octstr_duplicate(msg->sms.dlr_url);
+                    dlrmsg->sms.msgdata = reply;
                     time(&msg->sms.time); 
  			 
-                    octstr_append_char(reply, '/'); 
-                    octstr_insert(dlrmsg->sms.msgdata, reply, 0); 
-                    octstr_destroy(reply); 
- 			 
                     info(0,"SMPP[%s]: DLR = %s", octstr_get_cstr(smpp->conn->id),
                          octstr_get_cstr(dlrmsg->sms.msgdata)); 
                     bb_smscconn_receive(smpp->conn, dlrmsg); 
@@ -826,9 +845,7 @@
                                       (DLR_SMSC_SUCCESS|((msg->sms.dlr_mask & (DLR_SUCCESS|DLR_FAIL)) ? DLR_BUFFERED : 0))); 
  			 
                     if (dlrmsg != NULL) { 
-                        octstr_append_char(reply, '/'); 
-                        dlrmsg->sms.msgdata = octstr_duplicate(reply);
-                        octstr_destroy(reply); 
+                        dlrmsg->sms.msgdata = reply;
                         bb_smscconn_receive(smpp->conn, dlrmsg); 
                     } else 
                         error(0,"SMPP[%s]: Got SMSC_ACK but could not find message",
--- gateway/gw/smsc/smsc_at2.c	2002-09-04 20:42:56.000000000 +0300
+++ gateway/gw/smsc/smsc_at2.c	2002-09-05 23:37:06.000000000 +0300
@@ -1659,8 +1664,8 @@
                 dlrmsg->sms.smsc_id = octstr_duplicate(privdata->conn->id);
                 dlrmsg->sms.sender = octstr_duplicate(msg->sms.receiver);
                 dlrmsg->sms.receiver = octstr_duplicate(msg->sms.sender);
-                dlrmsg->sms.msgdata = octstr_create("ACK/");
-                octstr_append(dlrmsg->sms.msgdata,msg->sms.dlr_url);
+                dlrmsg->sms.msgdata = octstr_create("ACK");
+                dlrmsg->sms.dlr_url = octstr_duplicate(msg->sms.dlr_url);
                 time(&dlrmsg->sms.time);
 
 		debug("bb.smsc.at2",0,"AT2[%s]: sending DLR type ACK", octstr_get_cstr(privdata->name));
@@ -1704,8 +1709,8 @@
                 dlrmsg->sms.smsc_id = octstr_duplicate(privdata->conn->id);
                 dlrmsg->sms.sender = octstr_duplicate(msg->sms.receiver);
                 dlrmsg->sms.receiver = octstr_duplicate(msg->sms.sender);
-                dlrmsg->sms.msgdata = octstr_create("NACK/");
-                octstr_append(dlrmsg->sms.msgdata,msg->sms.dlr_url);
+                dlrmsg->sms.msgdata = octstr_create("NACK");
+                dlrmsg->sms.dlr_url = octstr_duplicate(msg->sms.dlr_url);
                 time(&dlrmsg->sms.time);
 
 		debug("bb.smsc.at2",0,"AT2[%s]: sending DLR type NACK", octstr_get_cstr(privdata->name));
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.