yep you're right.
also fix missing headers.
and panic text.




Alexander Malysh a écrit :
hi,

you don't need this check for each message:
+        if (use_dlr == 1) {
+            msg->sms.dlr_mask = dlr_mask;
+            msg->sms.dlr_url = octstr_duplicate(dlr_url);
+        }

because you already checked that if dlr-mask supplied that dlr_url is also supplied.

Thanks,
Alex

Am 09.04.2009 um 12:34 schrieb Vincent CHAVANIS:


here is a revised version

Vincent.

Alexander Malysh a écrit :
Hi Vincent,
some comments to your patch:
+
+        if (dlr_mask > 0 && dlr_url) {
+            msg->sms.dlr_mask = dlr_mask;
+            msg->sms.dlr_url = octstr_duplicate(dlr_url);
+        }
don't check this for each message, check this once by start and please use dlr macros:
DLR_IS_ENABLED(dlr_mask)
            case 'f':
                from = octstr_create(optarg);
                break;
+
+            case 'D':
+                dlr_mask = atoi(optarg);
please kill extra line
+    if (dlr_mask && dlr_url == NULL)
+ panic(0,"dlr-url address not specified. Use option -D to specify dlr-url address.");
+
should be if ((DLR_IS_ENABLED(dlr_mask) && dlr_url == NULL) || (!DLR_IS_ENABLED(dlr_mask) && dlr_url != NULL)
Thanks,
Alex
Am 07.04.2009 um 12:53 schrieb Vincent CHAVANIS:

This patch add a DLR support for mtbatch.
Will try to provide the charset/udh patch soon

Vincent.


diff -rauw /gateway-cvs/utils/mtbatch.c /gateway/utils/mtbatch.c
--- /gateway-cvs/utils/mtbatch.c        2009-04-03 14:51:29.000000000 +0200
+++ /gateway/utils/mtbatch.c    2009-04-09 17:07:45.000000000 +0200
@@ -63,8 +63,10 @@
  * to bearerbox.
  *
  * Stipe Tolj <[email protected]>
+ * Vincent Chavanis <[email protected]>
  *
- * XXX add udh (etc.) capabilities. Currently we handle only 7-bit.
+ * XXX Add UDH capabilities.
+ * XXX Support more charsets than 7-bit.
  */
 
 #include <string.h>
@@ -75,6 +77,7 @@
 
 #include "msg.h"
 #include "sms.h"
+#include "dlr.h"
 #include "bb.h"
 #include "shared.h"
 #include "heartbeat.h"
@@ -90,6 +93,8 @@
 static Octstr *service = NULL;
 static Octstr *account = NULL;
 static Octstr *from = NULL;
+static int dlr_mask = 0;
+static Octstr *dlr_url = NULL;
 static Octstr *smsc_id = NULL;
 static long sms_max_length = MAX_SMS_OCTETS;
 static double delay = 0;
@@ -251,6 +256,10 @@
     info(0, "    defines the smsbox-id to be used for bearerbox connection 
(default: none)");
     info(0, "-f sender");
     info(0, "    which sender address should be used");
+    info(0, "-D dlr-mask");
+    info(0, "    defines the dlr-mask");
+    info(0, "-u dlr-url");
+    info(0, "    defines the dlr-url");
     info(0, "-n service");
     info(0, "    defines which service name should be logged (default: none)");
     info(0, "-a account");
@@ -311,6 +320,8 @@
         msg->sms.receiver = octstr_duplicate(no);
         msg->sms.account = account ? octstr_duplicate(account) : NULL;
         msg->sms.msgdata = content ? octstr_duplicate(content) : 
octstr_create("");
+        msg->sms.dlr_mask = dlr_mask;
+        msg->sms.dlr_url = octstr_duplicate(dlr_url);        
         msg->sms.udhdata = octstr_create("");
         msg->sms.coding = DC_7BIT;
 
@@ -339,7 +350,7 @@
     bb_port = 13001;
     bb_ssl = 0;
         
-    while ((opt = getopt(argc, argv, "hv:b:p:si:n:a:f:d:r:")) != EOF) {
+    while ((opt = getopt(argc, argv, "hv:b:p:si:n:a:f:D:u:d:r:")) != EOF) {
         switch (opt) {
             case 'v':
                 log_set_output_level(atoi(optarg));
@@ -366,6 +377,13 @@
             case 'f':
                 from = octstr_create(optarg);
                 break;
+            case 'D':
+                dlr_mask = atoi(optarg);
+                break;
+            case 'u':
+                dlr_url = octstr_create(optarg);
+                break;
             case 'd':
                 delay = atof(optarg);
                 break;
@@ -389,6 +407,9 @@
     if (from == NULL)
         panic(0,"Sender address not specified. Use option -f to specify sender 
address.");
 
+    if ((DLR_IS_ENABLED(dlr_mask) && dlr_url == NULL) || 
(!DLR_IS_ENABLED(dlr_mask) && dlr_url != NULL))
+        panic(0,"dlr-url address OR dlr-mask not specified. Use option -D or 
-u to specify dlr values");
+
     rf = octstr_create(argv[argc-1]);
     cf = octstr_create(argv[argc-2]);
 
@@ -416,6 +437,7 @@
     octstr_destroy(content);
     octstr_destroy(service);
     octstr_destroy(account);
+    octstr_destroy(dlr_url);
     octstr_destroy(smsc_id);
     counter_destroy(counter);
     gwlist_destroy(lines, octstr_destroy_item); 

Reply via email to