[Patch] Meta-data handling in smsc_http

Semion Spivak <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Hello Developers,

Here's a patch that avails generic http smsc to handle meta-data 
parameter in MO messages, similar to smsbox cgi sendsms handler.

The patch affects gw/smsc/smsc_http.c, gwlib/cfg.def and 
doc/userguide/userguide.xml

Can it be added to trunk?

-- 
Regards,
Semion Spivak
Smscoin.com Technical support.
smsc_http_generic_metadata.patch (text/plain, 3.4 KB)
Index: gw/smsc/smsc_http.c
===================================================================
--- gw/smsc/smsc_http.c	(revision 4905)
+++ gw/smsc/smsc_http.c	(working copy)
@@ -142,6 +142,7 @@
     Octstr *service;
     Octstr *account;
     Octstr *binfo;
+    Octstr *meta_data;
     Octstr *dlr_mask;
     Octstr *dlr_url;
     Octstr *dlr_mid;
@@ -217,6 +218,7 @@
     octstr_destroy(fieldmap->service);
     octstr_destroy(fieldmap->account);
     octstr_destroy(fieldmap->binfo);
+    octstr_destroy(fieldmap->meta_data);
     octstr_destroy(fieldmap->dlr_mask);
     octstr_destroy(fieldmap->dlr_url);
     octstr_destroy(fieldmap->dlr_mid);
@@ -1729,6 +1731,9 @@
     fm->foreign_id = cfg_get(grp, octstr_imm("generic-param-foreign-id"));
     if (fm->foreign_id == NULL)
         fm->foreign_id = octstr_create("foreign-id");
+    fm->meta_data = cfg_get(grp, octstr_imm("generic-param-meta-data"));
+            if (fm->meta_data == NULL)
+                fm->meta_data = octstr_create("meta-data");
     fm->message_sent = cfg_get(grp, octstr_imm("generic-message-sent"));
     if (fm->message_sent == NULL)
         fm->message_sent = octstr_create("Sent");
@@ -1748,7 +1753,7 @@
 {
     ConnData *conndata = conn->data;
     FieldMap *fm = conndata->fieldmap;
-    Octstr *user, *pass, *from, *to, *text, *udh, *account, *binfo;
+    Octstr *user, *pass, *from, *to, *text, *udh, *account, *binfo, *meta_data;
     Octstr *dlrurl, *dlrmid;
     Octstr *tmp_string, *retmsg;
     int	mclass, mwi, coding, validity, deferred, dlrmask;
@@ -1867,6 +1872,7 @@
         }
         account = http_cgi_variable(cgivars, octstr_get_cstr(fm->account));
         binfo = http_cgi_variable(cgivars, octstr_get_cstr(fm->binfo));
+        meta_data = http_cgi_variable(cgivars, octstr_get_cstr(fm->meta_data));
 
         debug("smsc.http.generic", 0, "HTTP[%s]: Constructing new SMS",
               octstr_get_cstr(conn->id));
@@ -1887,6 +1893,7 @@
         msg->sms.time = time(NULL);
         msg->sms.account = octstr_duplicate(account);
         msg->sms.binfo = octstr_duplicate(binfo);
+        msg->sms.meta_data = octstr_duplicate(meta_data);
         Msg *resp = msg_duplicate(msg);
         ret = bb_smscconn_receive(conn, msg);
         if (ret == -1) {
         
Index: gwlib/cfg.def
===================================================================
--- gwlib/cfg.def	(revision 4905)
+++ gwlib/cfg.def	(working copy)
@@ -415,6 +415,7 @@
     OCTSTR(generic-param-validity)
     OCTSTR(generic-param-deferred)
     OCTSTR(generic-param-foreign-id)
+    OCTSTR(generic-param-meta-data)
     OCTSTR(generic-message-sent)
     OCTSTR(generic-status-sent)
     OCTSTR(generic-status-error)
     
Index: doc/userguide/userguide.xml
===================================================================
--- doc/userguide/userguide.xml	(revision 4905)
+++ doc/userguide/userguide.xml	(working copy)
@@ -4427,6 +4427,13 @@
        Overrides the default parameter for the 'foreign-id' field
        used on incoming requests.
      </entry></row>
+     
+   <row><entry><literal>generic-param-meta-data (o)</literal></entry>
+     <entry><literal>string</literal></entry>
+     <entry valign="bottom">
+       Overrides the default parameter for the 'meta-data' field
+       used on incoming requests.
+     </entry></row>
 
    <row><entry><literal>generic-message-sent (o)</literal></entry>
      <entry><literal>string</literal></entry>
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.