1
0
Fork 0

Added gw_assert() calls and better error checking in mms_msg module

This commit is contained in:
bagyenda 2006-02-24 05:15:26 +00:00
parent 3d88101a5f
commit 35e33941c7
2 changed files with 55 additions and 23 deletions

View File

@ -245,10 +245,8 @@ void mms_cfg_destroy(mCfg *cfg)
mCfgGrp *mms_cfg_get_single(mCfg *cfg, Octstr *name) mCfgGrp *mms_cfg_get_single(mCfg *cfg, Octstr *name)
{ {
gw_assert(name); gw_assert(name);
gw_assert(is_multigroup(name) == 0);
if (is_multigroup(name))
gw_assert("Can't call this function with a multi-group name!" && 0);
return dict_get(cfg->grps, name); return dict_get(cfg->grps, name);
} }
@ -259,8 +257,7 @@ List *mms_cfg_get_multi(mCfg *cfg, Octstr *name)
int i; int i;
gw_assert(name); gw_assert(name);
if (!is_multigroup(name)) gw_assert(is_multigroup(name) == 1);
gw_assert("Can't call this function with a single-group name!" && 0);
r = dict_get(cfg->grps, name); r = dict_get(cfg->grps, name);

View File

@ -1036,6 +1036,7 @@ static int fixup_msg(MmsMsg *m, Octstr *from)
mms_encoding mms_message_enc(MmsMsg *msg) mms_encoding mms_message_enc(MmsMsg *msg)
{ {
gw_assert(msg);
return msg->enc; return msg->enc;
} }
@ -1043,9 +1044,13 @@ MmsMsg *mms_frombinary(Octstr *msg, Octstr *from)
{ {
int res = 0; int res = 0;
MmsMsg _m = {0}, *m = NULL; MmsMsg _m = {0}, *m = NULL;
ParseContext *p = parse_context_create(msg); ParseContext *p;
Octstr *s; Octstr *s;
if (!msg)
return NULL;
p = parse_context_create(msg);
mms_strings_init(); /* Just in case. */ mms_strings_init(); /* Just in case. */
_m.headers = list_create(); _m.headers = list_create();
@ -1120,6 +1125,8 @@ void mms_msgdump(MmsMsg *m, int headers_only)
{ {
int i, n; int i, n;
gw_assert(m);
http_header_dump(m->headers); http_header_dump(m->headers);
debug("mms.dump", 0, "Dumping MMS message body (%s) [%ld parts] --> ", debug("mms.dump", 0, "Dumping MMS message body (%s) [%ld parts] --> ",
@ -1140,8 +1147,11 @@ void mms_msgdump(MmsMsg *m, int headers_only)
Octstr *mms_tobinary(MmsMsg *msg) Octstr *mms_tobinary(MmsMsg *msg)
{ {
Octstr *s = octstr_create(""); Octstr *s;
if (!msg)
return NULL;
s = octstr_create("");
encode_msgheaders(s, msg->headers); encode_msgheaders(s, msg->headers);
if (msg->body.s) if (msg->body.s)
@ -1151,7 +1161,8 @@ Octstr *mms_tobinary(MmsMsg *msg)
int mms_messagetype(MmsMsg *msg) int mms_messagetype(MmsMsg *msg)
{ {
return msg->message_type; gw_assert(msg);
return msg->message_type;
} }
@ -1250,9 +1261,13 @@ static void unconvert_mime_msg(MIMEEntity *m)
MIMEEntity *mms_tomime(MmsMsg *msg, int base64) MIMEEntity *mms_tomime(MmsMsg *msg, int base64)
{ {
MIMEEntity *m = gw_malloc(sizeof *m); MIMEEntity *m;
int i, n; int i, n;
if (!msg)
return NULL;
m = gw_malloc(sizeof *m);
memset(m, 0, sizeof *m); memset(m, 0, sizeof *m);
m->body = NULL; m->body = NULL;
m->multiparts = NULL; m->multiparts = NULL;
@ -1276,10 +1291,14 @@ MIMEEntity *mms_tomime(MmsMsg *msg, int base64)
MmsMsg *mms_frommime(MIMEEntity *mime) MmsMsg *mms_frommime(MIMEEntity *mime)
{ {
MmsMsg *m = gw_malloc(sizeof *m); MmsMsg *m;
Octstr *s; Octstr *s;
MIMEEntity *mx; MIMEEntity *mx;
if (!mime)
return NULL;
m = gw_malloc(sizeof *m);
memset(m, 0, sizeof *m); memset(m, 0, sizeof *m);
mx = mime_entity_duplicate(mime); mx = mime_entity_duplicate(mime);
@ -1379,6 +1398,8 @@ static void mm_destroy(MIMEEntity *mx)
void mms_destroy(MmsMsg *msg) void mms_destroy(MmsMsg *msg)
{ {
if (!msg)
return;
if (msg->ismultipart) if (msg->ismultipart)
list_destroy(msg->body.l, (list_item_destructor_t *)mm_destroy); list_destroy(msg->body.l, (list_item_destructor_t *)mm_destroy);
else if (msg->body.s) else if (msg->body.s)
@ -1392,16 +1413,18 @@ void mms_destroy(MmsMsg *msg)
List *mms_message_headers(MmsMsg *msg) List *mms_message_headers(MmsMsg *msg)
{ {
gw_assert(msg);
return http_header_duplicate(msg->headers); return http_header_duplicate(msg->headers);
} }
MmsMsg *mms_readreport(Octstr *msgid, Octstr *from, Octstr *to, time_t date, Octstr *status) MmsMsg *mms_readreport(Octstr *msgid, Octstr *from, Octstr *to, time_t date, Octstr *status)
{ {
MmsMsg *m = gw_malloc(sizeof *m); MmsMsg *m;
Octstr *s; Octstr *s;
m = gw_malloc(sizeof *m);
m->ismultipart = 0; m->ismultipart = 0;
m->headers = http_create_empty_headers(); m->headers = http_create_empty_headers();
@ -1584,8 +1607,8 @@ MmsMsg *mms_retrieveconf(MmsMsg *msg, Octstr *transactionid,
int mms_remove_headers(MmsMsg *m, char *name) int mms_remove_headers(MmsMsg *m, char *name)
{ {
gw_assert(m);
http_header_remove_all(m->headers, name); http_header_remove_all(m->headers, name);
return 0; return 0;
} }
@ -1625,16 +1648,18 @@ MmsMsg *mms_sendconf(char *errstr, char *msgid, char *transid, int isforward, in
int mms_replace_header_value(MmsMsg *msg, char *hname, char *value) int mms_replace_header_value(MmsMsg *msg, char *hname, char *value)
{ {
gw_assert(msg);
http_header_remove_all(msg->headers, hname); http_header_remove_all(msg->headers, hname);
http_header_add(msg->headers, hname, value); http_header_add(msg->headers, hname, value);
return 0; return 0;
} }
int mms_add_missing_headers(MmsMsg *msg, List *headers) int mms_add_missing_headers(MmsMsg *msg, List *headers)
{ {
List *h = http_header_duplicate(headers); List *h;
gw_assert(msg);
h = http_header_duplicate(headers);
http_header_combine(h, msg->headers); http_header_combine(h, msg->headers);
http_destroy_headers(msg->headers); http_destroy_headers(msg->headers);
@ -1645,6 +1670,8 @@ int mms_add_missing_headers(MmsMsg *msg, List *headers)
int mms_replace_header_values(MmsMsg *msg, char *hname, List *value) int mms_replace_header_values(MmsMsg *msg, char *hname, List *value)
{ {
int i; int i;
gw_assert(msg);
http_header_remove_all(msg->headers, hname); http_header_remove_all(msg->headers, hname);
for (i = 0; i < list_len(value); i++) { for (i = 0; i < list_len(value); i++) {
@ -1656,7 +1683,7 @@ int mms_replace_header_values(MmsMsg *msg, char *hname, List *value)
Octstr *mms_get_header_value(MmsMsg *msg, Octstr *header) Octstr *mms_get_header_value(MmsMsg *msg, Octstr *header)
{ {
gw_assert(msg);
return http_header_value(msg->headers, header); return http_header_value(msg->headers, header);
} }
@ -1664,10 +1691,13 @@ Octstr *mms_get_header_value(MmsMsg *msg, Octstr *header)
List *mms_get_header_values(MmsMsg *msg, Octstr *header) List *mms_get_header_values(MmsMsg *msg, Octstr *header)
{ {
List *h = http_header_find_all(msg->headers, octstr_get_cstr(header)); List *h;
List *l = list_create(); List *l;
int i; int i;
gw_assert(msg);
l = list_create();
h = http_header_find_all(msg->headers, octstr_get_cstr(header));
for (i = 0; i < list_len(h); i++) { for (i = 0; i < list_len(h); i++) {
Octstr *hname, *value; Octstr *hname, *value;
@ -1686,6 +1716,7 @@ int mms_convert_readrec2readorig(MmsMsg *msg)
Octstr *s; Octstr *s;
gw_assert(msg);
if (msg->message_type != MMS_MSGTYPE_READ_REC_IND) if (msg->message_type != MMS_MSGTYPE_READ_REC_IND)
return -1; return -1;
@ -1755,9 +1786,12 @@ MmsMsg *mms_deleteconf(int menc, char *transid)
static int mms_msgsize(MmsMsg *m) static int mms_msgsize(MmsMsg *m)
{ {
Octstr *s = mms_tobinary(m); /* Dirty, but works... */ Octstr *s;
int n = octstr_len(s); int n;
gw_assert(m);
s = mms_tobinary(m); /* Dirty, but works... */
n = octstr_len(s);
octstr_destroy(s); octstr_destroy(s);
return n; return n;
} }
@ -1988,6 +2022,7 @@ int mms_clearbody(MmsMsg *msg)
int mms_putbody(MmsMsg *msg, void *body, int ismultipart) int mms_putbody(MmsMsg *msg, void *body, int ismultipart)
{ {
gw_assert(msg);
mms_clearbody(msg); mms_clearbody(msg);
msg->ismultipart = ismultipart; msg->ismultipart = ismultipart;