1
0
Fork 0

Fixes for http-post-parameters in mmsbox, better handling of x-mbuni-to header

This commit is contained in:
bagyenda 2005-09-15 07:57:56 +00:00
parent 21546794d8
commit dd86106119
7 changed files with 25 additions and 12 deletions

View File

@ -3,7 +3,7 @@ log-file = /tmp/log/mbuni.log
access-log = /tmp/log/access.log
log-level = 0
group = mmsbox
group = mbuni
name = "My MMSC"
hostname = ds.co.ug
host-alias = mmsc

View File

@ -722,7 +722,7 @@ diff -Naur gateway-1.4.0/gwlib/cfg.def gateway-1.4.0-patched/gwlib/cfg.def
OCTSTR(unified-prefix)
)
+SINGLE_GROUP(mmsbox,
+SINGLE_GROUP(mbuni,
+ OCTSTR(name)
+ OCTSTR(hostname)
+ OCTSTR(host-alias)

View File

@ -173,6 +173,7 @@ static void add_all_matching_parts(MIMEEntity *plist, MmsServiceUrlParam *pm,
if (xctype)
if (TYPE_MATCH(IMAGE_PART,"image/") ||
TYPE_MATCH(AUDIO_PART,"audio/") ||
TYPE_MATCH(VIDEO_PART,"video/") ||
TYPE_MATCH(TEXT_PART,"text/") ||
TYPE_MATCH(SMIL_PART,"application/smil") ||
@ -496,11 +497,11 @@ int main(int argc, char *argv[])
/* Start out-going queue thread. */
qthread = gwthread_create((gwthread_func_t *)mmsbox_outgoing_queue_runner, &rstop);
#if 0
mms_queue_run(octstr_get_cstr(incoming_qdir),
mmsbox_service_dispatch,
queue_interval, maxthreads, &rstop);
#endif
/* Wait for the sender thread, then quit. */
gwthread_join(qthread); /* Wait for it to die... */
@ -908,13 +909,21 @@ static int make_and_queue_msg(Octstr *data, Octstr *ctype, List *reply_headers,
int i, n;
for (i = 0, n = list_len(l); i<n; i++) {
Octstr *h = NULL, *v = NULL;
List *hv = NULL;
int j;
http_header_get(l, i, &h, &v);
/* Fix the address. */
_mms_fixup_address(v);
hv = http_header_split_value(v);
list_append(xto, v);
for (j = 0; j < list_len(hv); j++) {
Octstr *v = list_get(hv, j);
/* Fix the address. */
_mms_fixup_address(v);
list_append(xto, v);
}
octstr_destroy(v);
octstr_destroy(h);
list_destroy(hv, NULL); /* Don't kill strings since we added them to xto above! */
}
http_destroy_headers(l);
}

View File

@ -36,7 +36,7 @@ struct SendMmsPortInfo sendmms_port;
int mms_load_mmsbox_settings(Cfg *cfg, gwthread_func_t *mmsc_handler_func)
{
CfgGroup *grp = cfg_get_single_group(cfg, octstr_imm("mmsbox"));
CfgGroup *grp = cfg_get_single_group(cfg, octstr_imm("mbuni"));
CfgGroup *cgrp = cfg_get_single_group(cfg, octstr_imm("core"));
Octstr *gdir, *s;
int send_port_ssl = 0;
@ -270,6 +270,10 @@ int mms_load_mmsbox_settings(Cfg *cfg, gwthread_func_t *mmsc_handler_func)
if (octstr_get_char(y, ii+1) == '%') {
switch(ch = octstr_get_char(y, ii+2)) {
case 'a':
p->type = AUDIO_PART; break;
case 'b':
p->type = WHOLE_BINARY; break;
case 'i':
p->type = IMAGE_PART; break;
case 'v':
@ -280,7 +284,7 @@ int mms_load_mmsbox_settings(Cfg *cfg, gwthread_func_t *mmsc_handler_func)
p->type = SMIL_PART; break;
case 'o':
p->type = OTHER_PART; break;
case 'a':
case 'z':
p->type = ANY_PART; break;
case '%':
p->type = NO_PART; break;

View File

@ -33,7 +33,7 @@ typedef struct MmscGrp {
typedef struct MmsServiceUrlParam {
Octstr *name;
enum {NO_PART, IMAGE_PART, VIDEO_PART,
enum {NO_PART, AUDIO_PART, IMAGE_PART, VIDEO_PART,
TEXT_PART, SMIL_PART , OTHER_PART,
ANY_PART, WHOLE_BINARY} type;
Octstr *value; /* for generic value (type == NO_PART),

View File

@ -65,7 +65,7 @@ MmscSettings *mms_load_mmsc_settings(Cfg *cfg, List **proxyrelays)
Octstr *s;
List *l;
CfgGroup *grp = cfg_get_single_group(cfg, octstr_imm("mmsbox"));
CfgGroup *grp = cfg_get_single_group(cfg, octstr_imm("mbuni"));
CfgGroup *cgrp = cfg_get_single_group(cfg, octstr_imm("core"));
MmscSettings *m = gw_malloc(sizeof *m);
long port = -1;

View File

@ -37,7 +37,7 @@ int main(int argc, char *argv[])
cfidx = get_and_set_debugs(argc, argv, NULL);
if (argv[cfidx] == NULL)
fname = octstr_imm("mmsc.conf");
fname = octstr_imm("mbuni.conf");
else
fname = octstr_create(argv[cfidx]);