diff --git a/mbuni/ChangeLog b/mbuni/ChangeLog index 162fa65..c2cc76d 100644 --- a/mbuni/ChangeLog +++ b/mbuni/ChangeLog @@ -1,3 +1,5 @@ +2008-06-24 P. A. Bagyenda + * Improved queue information: Included source interface 2008-06-18 P. A. Bagyenda * added qcelp file extension to mime type mapping 2008-05-30 P. A. Bagyenda diff --git a/mbuni/extras/pgsql-queue/mms_pgsql_queue.c b/mbuni/extras/pgsql-queue/mms_pgsql_queue.c index 65c27b2..cf4a373 100644 --- a/mbuni/extras/pgsql-queue/mms_pgsql_queue.c +++ b/mbuni/extras/pgsql-queue/mms_pgsql_queue.c @@ -276,6 +276,7 @@ static MmsEnvelope *pgq_queue_readenvelope(char *qf, char *mms_queuedir, int sho NULL, NULL, qf, + NULL, sizeof (struct pgfile_t), NULL); /* set the private data. */ @@ -322,6 +323,9 @@ static MmsEnvelope *pgq_queue_readenvelope(char *qf, char *mms_queuedir, int sho case 'I': e->msgId = octstr_create(res); break; + case 'i': /* interface. */ + strncpy(e->src_interface, res, sizeof e->src_interface); + break; case 'R': case 'Z': t = octstr_create(res); @@ -531,6 +535,10 @@ static int writeenvelope(MmsEnvelope *e, int newenv) _puthdr(qfs->conn, qfs->qid, "P", octstr_get_cstr(e->fromproxy)); + + if (e->src_interface[0]) + _puthdr(qfs->conn, qfs->qid, "i", e->src_interface); + if (e->mdata) _puthdr(qfs->conn, qfs->qid, "M", octstr_get_cstr(e->mdata)); @@ -577,7 +585,9 @@ static Octstr *pgq_queue_add(Octstr *from, List *to, Octstr *url1, Octstr *url2, List *hdrs, int dlr, - char *directory, Octstr *mmscname) + char *directory, + char *src_interface, + Octstr *mmscname) { char qf[QFNAMEMAX], xqid[128]; int64_t qid; @@ -619,6 +629,7 @@ static Octstr *pgq_queue_add(Octstr *from, List *to, senddate,expirydate,token,vaspid,vasid, url1,url2,hdrs,dlr,mmscname,m, qf, + src_interface, sizeof(struct pgfile_t), &ms); qfs = e->qfs_data; diff --git a/mbuni/mmlib/mms_queue.c b/mbuni/mmlib/mms_queue.c index 8f7e7fa..dc40aad 100644 --- a/mbuni/mmlib/mms_queue.c +++ b/mbuni/mmlib/mms_queue.c @@ -112,6 +112,7 @@ static int free_envelope(MmsEnvelope *e, int removefromqueue); * a parameter. Letters mean: * T - message type (full text string -- MMS message type. * I - message ID + * i - source interface (MM1, MM4, etc.) * F - From address * R - Recipient (the ones pending) for this message * C - Time queue entry was created @@ -222,6 +223,7 @@ static MmsEnvelope *mms_queue_readenvelope(char *qf, char *mms_queuedir, int sho NULL, NULL, qf, + NULL, sizeof (struct qfile_t), NULL); qfs = e->qfs_data; @@ -259,6 +261,9 @@ static MmsEnvelope *mms_queue_readenvelope(char *qf, char *mms_queuedir, int sho case 'I': e->msgId = octstr_create(res); break; + case 'i': + strncpy(e->src_interface, res, sizeof e->src_interface); + break; case 'F': e->from = octstr_create(res); if (mms_validate_address(e->from) != 0) { @@ -428,6 +433,9 @@ static int writeenvelope(MmsEnvelope *e, int newenv) if (e->msgId) _putline(fd, "I", octstr_get_cstr(e->msgId)); + if (e->src_interface[0]) + _putline(fd, "i", e->src_interface); + if (e->from) _putline(fd, "F", octstr_get_cstr(e->from)); @@ -717,7 +725,9 @@ static Octstr *mms_queue_add(Octstr *from, List *to, Octstr *url1, Octstr *url2, List *hdrs, int dlr, - char *directory, Octstr *mmscname) + char *directory, + char *src_interface, + Octstr *mmscname) { char qf[QFNAMEMAX], subdir[64]; int fd; @@ -736,7 +746,7 @@ static Octstr *mms_queue_add(Octstr *from, List *to, e = mms_queue_create_envelope(from, to, subject, fromproxy,viaproxy, senddate,expirydate,token,vaspid,vasid, url1,url2,hdrs,dlr,mmscname,m, - octstr_get_cstr(res), + octstr_get_cstr(res), src_interface, sizeof(struct qfile_t), &ms); qfs = e->qfs_data; strncpy(qfs->name, qf, sizeof qfs->name); @@ -831,6 +841,7 @@ MmsEnvelope *mms_queue_create_envelope(Octstr *from, List *to, Octstr *mmscname, MmsMsg *m, char *xqfname, + char *src_interface, int extra_space, Octstr **binary_mms) { @@ -879,6 +890,8 @@ MmsEnvelope *mms_queue_create_envelope(Octstr *from, List *to, e->dlr = dlr; + strncpy(e->src_interface, src_interface ? src_interface : "", sizeof e->src_interface); + if (xqfname) strncpy(e->xqfname, xqfname, sizeof e->xqfname); diff --git a/mbuni/mmlib/mms_queue.h b/mbuni/mmlib/mms_queue.h index fde652d..276672c 100644 --- a/mbuni/mmlib/mms_queue.h +++ b/mbuni/mmlib/mms_queue.h @@ -64,6 +64,9 @@ typedef struct MmsEnvelope { Octstr *mdata; /* Generic string data used by any interface. */ Octstr *fromproxy; /* Which proxy sent us this message.*/ Octstr *viaproxy; /* Which proxy must we send this message through. */ + + char src_interface[16]; /* source interface of this message. */ + char _extra_space; /* A bit of sugar, just in case... */ void *_x; /* Generic storage field used by module clients. */ void *qfs_data; /* Queue handler module structure -- allocated for you by queue_create @@ -90,15 +93,16 @@ typedef struct MmsQueueHandlerFuncs { * Returns a queue file name. */ Octstr *(*mms_queue_add)(Octstr *from, List *to, - Octstr *subject, - Octstr *fromproxy, Octstr *viaproxy, - time_t senddate, time_t expirydate, MmsMsg *m, - Octstr *token, - Octstr *vaspid, Octstr *vasid, - Octstr *url1, Octstr *url2, - List *hdrs, - int dlr, - char *directory, Octstr *mmscname); + Octstr *subject, + Octstr *fromproxy, Octstr *viaproxy, + time_t senddate, time_t expirydate, MmsMsg *m, + Octstr *token, + Octstr *vaspid, Octstr *vasid, + Octstr *url1, Octstr *url2, + List *hdrs, + int dlr, + char *directory, char *src_interface, + Octstr *mmscname); /* * Update queue status. Returns -1 on error, 0 if queue is updated fine and @@ -166,6 +170,7 @@ MmsEnvelope *mms_queue_create_envelope(Octstr *from, List *to, Octstr *mmscname, MmsMsg *m, char *xqfname, + char *src_interface, int extra_space, Octstr **binary_mms); /* Get rid of memory used by this. */ diff --git a/mbuni/mmsbox/bearerbox.c b/mbuni/mmsbox/bearerbox.c index f89c58e..d52a7b7 100644 --- a/mbuni/mmsbox/bearerbox.c +++ b/mbuni/mmsbox/bearerbox.c @@ -227,6 +227,7 @@ static void mm7soap_receive(MmsHTTPClientInfo *h) qh, dlr, octstr_get_cstr(qdir), + "MM7/SOAP-IN", octstr_imm(MM_NAME)); msgid = mms_maketransid(octstr_get_cstr(qf), octstr_imm(MM_NAME)); mms_log("Received", from, to, -1, msgid, NULL, h->m->id, "MMSBox", h->ua, NULL); @@ -256,6 +257,7 @@ static void mm7soap_receive(MmsHTTPClientInfo *h) NULL, 0, octstr_get_cstr(qdir), + "MM7/SOAP-IN", octstr_imm(MM_NAME)); else qf = NULL; @@ -297,6 +299,7 @@ static void mm7soap_receive(MmsHTTPClientInfo *h) NULL, 0, octstr_get_cstr(qdir), + "MM7/SOAP-IN", octstr_imm(MM_NAME)); else qf = NULL; @@ -464,6 +467,7 @@ static void mm7eaif_receive(MmsHTTPClientInfo *h) NULL, dlr, octstr_get_cstr(qdir), + "MM7/EAIF-IN", octstr_imm(MM_NAME)); if (qf) { @@ -484,6 +488,7 @@ static void mm7eaif_receive(MmsHTTPClientInfo *h) NULL, 0, octstr_get_cstr(qdir), + "MM7/EAIF-IN", octstr_imm(MM_NAME)); if (qf) { /* Log to access log */ @@ -513,6 +518,7 @@ static void mm7eaif_receive(MmsHTTPClientInfo *h) NULL, 0, octstr_get_cstr(qdir), + "MM7/EAIF-IN", octstr_imm(MM_NAME)); if (qf) { /* Log to access log */ diff --git a/mbuni/mmsbox/mmsbox.c b/mbuni/mmsbox/mmsbox.c index 5cedadb..23d4a93 100644 --- a/mbuni/mmsbox/mmsbox.c +++ b/mbuni/mmsbox/mmsbox.c @@ -1137,6 +1137,7 @@ static int make_and_queue_msg(Octstr *data, Octstr *ctype, List *reply_headers, hdrs, (dlr_url != NULL), octstr_get_cstr(qdir), + "MMSBox", octstr_imm(MM_NAME)); info(0, "MMSBox: Queued message from service [%s], [transid [%s]: %s", octstr_get_cstr(svc_name), diff --git a/mbuni/mmsc/mms_billing.c b/mbuni/mmsc/mms_billing.c index b032ee5..399d5a2 100644 --- a/mbuni/mmsc/mms_billing.c +++ b/mbuni/mmsc/mms_billing.c @@ -46,8 +46,9 @@ static int mms_logcdr(MmsCdrStruct *cdr) localtime_r(&cdr->sdate, &tm); gw_strftime(buf, sizeof buf, "%Y-%m-%d %H:%M:%S", &tm); - fprintf(cdr->module_data, "%s\t%.128s\t%.256s\t%.256s\t%ld\n", - buf, cdr->from, cdr->to, cdr->msgid, cdr->msg_size); + fprintf(cdr->module_data, "%s\t%.128s\t%.128s\t%.256s\t%.256s\t%ld\n", + buf, cdr->src_interface[0] ? cdr->src_interface : "MM2", + cdr->from, cdr->to, cdr->msgid, cdr->msg_size); fflush(cdr->module_data); } else return -1; @@ -55,6 +56,25 @@ static int mms_logcdr(MmsCdrStruct *cdr) return 0; } +MmsCdrStruct *make_cdr_struct(void *module_data, time_t sdate, char *from, char *to, char *msgid, + char *vaspid, char *src_int, unsigned long msg_size) +{ + + MmsCdrStruct *cdr = gw_malloc(sizeof *cdr); + + cdr->module_data = module_data; + cdr->sdate = sdate; + strncpy(cdr->from, from ? from : "", sizeof cdr->from); + strncpy(cdr->to, to ? to : "", sizeof cdr->to); + strncpy(cdr->msgid, msgid ? msgid : "", sizeof cdr->msgid); + strncpy(cdr->vaspid, vaspid ? vaspid : "", sizeof cdr->vaspid); + strncpy(cdr->src_interface, src_int ? src_int : "MM2", sizeof cdr->src_interface); + + cdr->msg_size = msg_size; + + return cdr; +} + /* The function itself. */ MmsBillingFuncStruct mms_billfuncs = { mms_billingmodule_init, diff --git a/mbuni/mmsc/mms_billing.h b/mbuni/mmsc/mms_billing.h index 8ea19da..88a9f4c 100644 --- a/mbuni/mmsc/mms_billing.h +++ b/mbuni/mmsc/mms_billing.h @@ -31,6 +31,7 @@ typedef struct MmsCdrStruct { char to[CBUFSIZE]; char msgid[CBUFSIZE]; char vaspid[CBUFSIZE]; + char src_interface[CBUFSIZE]; unsigned long msg_size; } MmsCdrStruct; @@ -54,4 +55,7 @@ typedef struct MmsBillingFuncStruct { extern MmsBillingFuncStruct mms_billfuncs; /* The module must expose this symbol. */ +/* utility function. */ +MmsCdrStruct *make_cdr_struct(void *module_data, time_t sdate, char *from, char *to, char *msgid, + char *vaspid, char *src_int, unsigned long msg_size); #endif diff --git a/mbuni/mmsc/mmsfromemail.c b/mbuni/mmsc/mmsfromemail.c index aea6fe9..c89b018 100644 --- a/mbuni/mmsc/mmsfromemail.c +++ b/mbuni/mmsc/mmsfromemail.c @@ -278,16 +278,17 @@ int main(int argc, char *argv[]) dlr = 0; qf = settings->qfs->mms_queue_add(xfrom, lto, NULL, xproxy, NULL, - 0, time(NULL) + settings->default_msgexpiry, msg, NULL, - NULL, NULL, - NULL, NULL, - NULL, - dlr, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + 0, time(NULL) + settings->default_msgexpiry, msg, NULL, + NULL, NULL, + NULL, NULL, + NULL, + dlr, + octstr_get_cstr(settings->global_queuedir), + mm4_type ? "MM4" : "MM3", + settings->host_alias); if (qf) { newmsgid = mms_maketransid(octstr_get_cstr(qf), - settings->host_alias); + settings->host_alias); info(0, "%s Queued message to %s from %s (via %s) => %s", mm4_type ? "MM4 Incoming" : "Email2MMS", octstr_get_cstr(xto), octstr_get_cstr(xfrom), @@ -319,14 +320,15 @@ int main(int argc, char *argv[]) octstr_format_append(xto, "/TYPE=PLMN"); gwlist_append(lto, xto); qf = settings->qfs->mms_queue_add(xfrom, lto, NULL, - xproxy, NULL, - 0, time(NULL) + settings->default_msgexpiry, msg, NULL, - NULL, NULL, - NULL, NULL, - NULL, - 0, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + xproxy, NULL, + 0, time(NULL) + settings->default_msgexpiry, msg, NULL, + NULL, NULL, + NULL, NULL, + NULL, + 0, + octstr_get_cstr(settings->global_queuedir), + "MM4", + settings->host_alias); gwlist_destroy(lto, NULL); if (qf) { info(0, "MM4 Queued DLR from proxy %s to %s from %s => %s", @@ -351,14 +353,15 @@ int main(int argc, char *argv[]) octstr_format_append(xto, "/TYPE=PLMN"); gwlist_append(lto, xto); qf = settings->qfs->mms_queue_add(xfrom, lto, NULL, - xproxy, NULL, - 0, time(NULL) + settings->default_msgexpiry, msg, NULL, - NULL, NULL, - NULL, NULL, - NULL, - 0, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + xproxy, NULL, + 0, time(NULL) + settings->default_msgexpiry, msg, NULL, + NULL, NULL, + NULL, NULL, + NULL, + 0, + octstr_get_cstr(settings->global_queuedir), + "MM4", + settings->host_alias); gwlist_destroy(lto, NULL); if (qf) { info(0, "MM4 Queued read report from proxy %s to %s from %s => %s", @@ -416,17 +419,15 @@ int main(int argc, char *argv[]) /* write CDR if it is a forward confirmation */ if (processed && mtype == MM4_FORWARD_RES && rstatus && octstr_str_case_compare(rstatus, "Ok") == 0) { - MmsCdrStruct _cdr, *cdr = &_cdr; - - cdr->module_data = settings->mms_bill_module_data; - cdr->sdate = e->created; - strncpy(cdr->from, octstr_get_cstr(e->from), sizeof cdr->from); - strncpy(cdr->to, o_to ? octstr_get_cstr(o_to) : "", sizeof cdr->to); - strncpy(cdr->msgid, e->msgId ? octstr_get_cstr(e->msgId) : "", sizeof cdr->msgid); - strncpy(cdr->vaspid, e->vaspid ? octstr_get_cstr(e->vaspid) : "", sizeof cdr->vaspid); - cdr->msg_size = e->msize; - + MmsCdrStruct *cdr = make_cdr_struct(settings->mms_bill_module_data, + e->created, octstr_get_cstr(e->from), + o_to ? octstr_get_cstr(o_to) : "", + e->msgId ? octstr_get_cstr(e->msgId) : "", + e->vaspid ? octstr_get_cstr(e->vaspid) : "", + "MM4", e->msize); settings->mms_billfuncs->mms_logcdr(cdr); + + gw_free(cdr); } info(0, "MM4 received %s from proxy %s to %s from %s => %s, status: [%s, %s]", diff --git a/mbuni/mmsc/mmsglobalsender.c b/mbuni/mmsc/mmsglobalsender.c index 786dd02..2101faf 100644 --- a/mbuni/mmsc/mmsglobalsender.c +++ b/mbuni/mmsc/mmsglobalsender.c @@ -364,14 +364,15 @@ static int sendMsg(MmsEnvelope *e) /* Add to queue, switch via proxy to be from proxy. */ qfs = settings->qfs->mms_queue_add(to->rcpt, l, - err, NULL, e->fromproxy, - tnow, tnow+settings->default_msgexpiry, m, NULL, - NULL, NULL, - NULL, NULL, - NULL, - 0, - qdir, - settings->host_alias); + err, NULL, e->fromproxy, + tnow, tnow+settings->default_msgexpiry, m, NULL, + NULL, NULL, + NULL, NULL, + NULL, + 0, + qdir, + "MM2", + settings->host_alias); octstr_destroy(qfs); gwlist_destroy(l, NULL); @@ -389,16 +390,15 @@ static int sendMsg(MmsEnvelope *e) err ? octstr_get_cstr(err) : "(null)"); if (res == MMS_SEND_OK) { /* Do CDR writing. */ - MmsCdrStruct *cdr = gw_malloc(sizeof *cdr); - - cdr->module_data = settings->mms_bill_module_data; - cdr->sdate = e->created; - strncpy(cdr->from, octstr_get_cstr(e->from), sizeof cdr->from); - strncpy(cdr->to, octstr_get_cstr(to->rcpt), sizeof cdr->to); - strncpy(cdr->msgid, e->msgId ? octstr_get_cstr(e->msgId) : "", sizeof cdr->msgid); - strncpy(cdr->vaspid, e->vaspid ? octstr_get_cstr(e->vaspid) : "", sizeof cdr->vaspid); - cdr->msg_size = e->msize; - + MmsCdrStruct *cdr = make_cdr_struct(settings->mms_bill_module_data, + e->created, + octstr_get_cstr(e->from), + octstr_get_cstr(to->rcpt), + e->msgId ? octstr_get_cstr(e->msgId) : "", + e->vaspid ? octstr_get_cstr(e->vaspid) : "", + e->src_interface, + e->msize); + gwlist_produce(cdr_list, cdr); /* Put it on list so sending thread sends it. */ } octstr_destroy(err); @@ -457,7 +457,9 @@ void mbuni_global_queue_runner(int *rstop) /* When it ends, wait a little for other stuff to stop... */ sleep(2); gwlist_remove_producer(cdr_list); /* Stop CDR thread. */ - + + gwlist_destroy(cdr_list, NULL); /* Destroy it. */ + return; } @@ -502,11 +504,12 @@ int mms_sendtomobile(Octstr *from, Octstr *to, x = octstr_create(tokenstr); if (m) ret = settings->qfs->mms_queue_add(from, l, subject, fromproxy, NULL, 0, expires, m, - x, NULL, NULL, - NULL, NULL, - NULL, - dlr, mobile_qdir, - settings->host_alias); + x, NULL, NULL, + NULL, NULL, + NULL, + dlr, mobile_qdir, + "MM2", + settings->host_alias); else *error = octstr_format("GlobalSend: Failed to send to %S, Message format is corrupt!", to); diff --git a/mbuni/mmsc/mmsmobilesender.c b/mbuni/mmsc/mmsmobilesender.c index cfd97d0..7c42f73 100644 --- a/mbuni/mmsc/mmsmobilesender.c +++ b/mbuni/mmsc/mmsmobilesender.c @@ -422,14 +422,15 @@ static int sendNotify(MmsEnvelope *e) /* Add to queue, switch via proxy to be from proxy. */ res = settings->qfs->mms_queue_add(to ? to : settings->system_user, l, err, - NULL, fromproxy, - tnow, tnow+settings->default_msgexpiry, m, NULL, - NULL, NULL, - NULL, NULL, - NULL, - 0, - octstr_get_cstr(settings->mm1_queuedir), - settings->host_alias); + NULL, fromproxy, + tnow, tnow+settings->default_msgexpiry, m, NULL, + NULL, NULL, + NULL, NULL, + NULL, + 0, + octstr_get_cstr(settings->mm1_queuedir), + "MM2", + settings->host_alias); gwlist_destroy(l, NULL); mms_destroy(m); octstr_destroy(res); diff --git a/mbuni/mmsc/mmsproxy.c b/mbuni/mmsc/mmsproxy.c index 0429084..6051dfa 100644 --- a/mbuni/mmsc/mmsproxy.c +++ b/mbuni/mmsc/mmsproxy.c @@ -399,13 +399,14 @@ void fetchmms_proxy(MmsHTTPClientInfo *h) http_header_add(qh, "X-Mbuni-Timestamp", tbuf); /* record time of message. */ x = settings->qfs->mms_queue_add(from, l, NULL, NULL, NULL, 0, - time(NULL) + settings->default_msgexpiry, mrpt, NULL, - NULL, NULL, - NULL, NULL, - qh, - 0, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + time(NULL) + settings->default_msgexpiry, mrpt, NULL, + NULL, NULL, + NULL, NULL, + qh, + 0, + octstr_get_cstr(settings->global_queuedir), + "MM1", + settings->host_alias); octstr_destroy(x); @@ -591,8 +592,8 @@ static void sendmms_proxy(MmsHTTPClientInfo *h) mmbox_loc = mms_makefetchurl(octstr_get_cstr(sdf), NULL, MMS_LOC_MMBOX, from, settings); } - if (x) - octstr_destroy(x); + + octstr_destroy(x); /*Delete some headers that must be sent on. */ mms_remove_headers(m, "Bcc"); @@ -611,13 +612,14 @@ static void sendmms_proxy(MmsHTTPClientInfo *h) else dlr = 0; qf = settings->qfs->mms_queue_add(from, to, subject, - NULL, NULL, deliveryt, expiryt, m, NULL, - NULL, NULL, - NULL, NULL, - qh, - dlr, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + NULL, NULL, deliveryt, expiryt, m, NULL, + NULL, NULL, + NULL, NULL, + qh, + dlr, + octstr_get_cstr(settings->global_queuedir), + "MM1", + settings->host_alias); if (!qf) mresp = mms_sendconf("Error-transient-failure", "None", octstr_get_cstr(otransid),0, @@ -792,13 +794,14 @@ static void sendmms_proxy(MmsHTTPClientInfo *h) dlr = 0; /* Message to forward is now ready, write it to queue. */ qf2 = settings->qfs->mms_queue_add(from, to, subject, - NULL, NULL, deliveryt, expiryt, mfwd, NULL, - NULL, NULL, - NULL, NULL, - qh, - dlr, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + NULL, NULL, deliveryt, expiryt, mfwd, NULL, + NULL, NULL, + NULL, NULL, + qh, + dlr, + octstr_get_cstr(settings->global_queuedir), + "MM1", + settings->host_alias); /* Process any requests for writing to mmbox. */ x = mms_get_header_value(m, octstr_imm("X-Mms-Store")); @@ -881,40 +884,33 @@ static void sendmms_proxy(MmsHTTPClientInfo *h) gwlist_append(l, pfrom); x = settings->qfs->mms_queue_add(from, l, NULL, NULL, NULL, 0, - time(NULL) + settings->default_msgexpiry, - mrep, NULL, - NULL, NULL, - NULL, NULL, - NULL, - 0, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + time(NULL) + settings->default_msgexpiry, + mrep, NULL, + NULL, NULL, + NULL, NULL, + NULL, + 0, + octstr_get_cstr(settings->global_queuedir), + "MM1", + settings->host_alias); if (x) octstr_destroy(x); gwlist_destroy(l, NULL); mms_destroy(mrep); } - if (pfrom) - octstr_destroy(pfrom); - if (pdelivery_report) - octstr_destroy(pdelivery_report); - if (pmsgid) - octstr_destroy(pmsgid); - if (msgid) - octstr_destroy(msgid); - - if (xstate) - octstr_destroy(xstate); - if (xflags) - gwlist_destroy(xflags, (gwlist_item_destructor_t *)octstr_destroy); + octstr_destroy(pfrom); + octstr_destroy(pdelivery_report); + octstr_destroy(pmsgid); + octstr_destroy(msgid); + octstr_destroy(xstate); + gwlist_destroy(xflags, (gwlist_item_destructor_t *)octstr_destroy); } forward_done: - if (mfwd) - mms_destroy(mfwd); + mms_destroy(mfwd); if (e) { /* Update the message queue and go. */ e->lastaccess = time(NULL); @@ -992,13 +988,14 @@ static void sendmms_proxy(MmsHTTPClientInfo *h) gwlist_append(l, octstr_duplicate(e->from)); x = settings->qfs->mms_queue_add(from, l, NULL, NULL, NULL, 0, - time(NULL) + settings->default_msgexpiry, mrpt, NULL, - NULL, NULL, - NULL, NULL, - qh, - 0, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + time(NULL) + settings->default_msgexpiry, mrpt, NULL, + NULL, NULL, + NULL, NULL, + qh, + 0, + octstr_get_cstr(settings->global_queuedir), + "MM1", + settings->host_alias); octstr_destroy(x); gwlist_destroy(l, (gwlist_item_destructor_t *)octstr_destroy); @@ -1043,14 +1040,15 @@ static void sendmms_proxy(MmsHTTPClientInfo *h) NULL, NULL); x = settings->qfs->mms_queue_add(from, to, NULL, NULL, NULL, time(NULL), - time(NULL) + settings->default_msgexpiry, - m, NULL, - NULL, NULL, - NULL, NULL, - qh, - 0, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + time(NULL) + settings->default_msgexpiry, + m, NULL, + NULL, NULL, + NULL, NULL, + qh, + 0, + octstr_get_cstr(settings->global_queuedir), + "MM1", + settings->host_alias); /* Log to access log */ mms_log("ReadReport", h->client_addr, NULL, msize, NULL, NULL, NULL, "MM1", h->ua,NULL); @@ -1611,14 +1609,15 @@ static void mm7soap_dispatch(MmsHTTPClientInfo *h) expiryt = time(NULL) + settings->default_msgexpiry; mms_remove_headers(m, "Message-ID"); /* cannot be found here. */ qf = settings->qfs->mms_queue_add(from ? from : sender, to, subject, - NULL, NULL, - delivert, expiryt, m, NULL, - h->vasp->id, vasid, - NULL, NULL, - NULL, - dlr, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + NULL, NULL, + delivert, expiryt, m, NULL, + h->vasp->id, vasid, + NULL, NULL, + NULL, + dlr, + octstr_get_cstr(settings->global_queuedir), + "MM7", + settings->host_alias); msgid = mms_maketransid(octstr_get_cstr(qf), settings->host_alias); mms_log("Received", from ? from : sender, to, -1, msgid, h->vasp->id, NULL, "MM7", h->ua, NULL); @@ -1847,13 +1846,14 @@ static void mm7eaif_dispatch(MmsHTTPClientInfo *h) /* Save it, make msgid, put message id in header, return. */ qf = settings->qfs->mms_queue_add(hfrom, to, subject, - NULL, NULL, deliveryt, expiryt, m, NULL, - NULL, NULL, - NULL, NULL, - NULL, - dlr, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); + NULL, NULL, deliveryt, expiryt, m, NULL, + NULL, NULL, + NULL, NULL, + NULL, + dlr, + octstr_get_cstr(settings->global_queuedir), + "MM7", + settings->host_alias); if (qf) { msgid = mms_maketransid(octstr_get_cstr(qf), diff --git a/mbuni/mmsc/mmssend.c b/mbuni/mmsc/mmssend.c index d451785..fcb991b 100644 --- a/mbuni/mmsc/mmssend.c +++ b/mbuni/mmsc/mmssend.c @@ -155,20 +155,21 @@ int main(int argc, char *argv[]) http_header_add(h, "X-Mms-CalledFrom", "Terminal"); #endif s = settings->qfs->mms_queue_add(from, to, NULL, NULL, NULL, time(NULL), - time(NULL) + settings->default_msgexpiry, m, - NULL, - NULL, NULL, - NULL, NULL, - h, - 0, - octstr_get_cstr(settings->global_queuedir), - settings->host_alias); - + time(NULL) + settings->default_msgexpiry, m, + NULL, + NULL, NULL, + NULL, NULL, + h, + 0, + octstr_get_cstr(settings->global_queuedir), + "MM3", + settings->host_alias); + if (savetommbox) mmbox = mms_mmbox_addmsg(octstr_get_cstr(settings->mmbox_rootdir), octstr_get_cstr(from), m, NULL, octstr_imm("Sent")); - mms_log("Received", from, to, msize, s, NULL, NULL, "mmssend",NULL,NULL); + mms_log("Received", from, to, msize, s, NULL, NULL, "MM3",NULL,NULL); printf("Queued: %s, mmbox=%s\n", octstr_get_cstr(s), mmbox ? octstr_get_cstr(mmbox) : "");