Hi List, attached you can find patch that should fix (my mistake:() parsing of optional parameters in smpp stack ...
-- Best Regards / Mit besten Gr��en aus K�ln Dipl.-Ing. Alexander Malysh ___________________________________ Centrium GmbH Ehrenstrasse 2 50672 K�ln Fon: +49 (0221) 277 49 240 Fax: +49 (0221) 277 49 109 email: [EMAIL PROTECTED] web: http://www.centrium.de msn: [EMAIL PROTECTED]
Index: gw/smsc/smpp_pdu.c
===================================================================
RCS file: /home/cvs/gateway/gw/smsc/smpp_pdu.c,v
retrieving revision 1.9
diff -a -u -r1.9 smpp_pdu.c
--- gw/smsc/smpp_pdu.c 28 Jan 2003 23:56:13 -0000 1.9
+++ gw/smsc/smpp_pdu.c 12 Mar 2003 13:16:23 -0000
@@ -225,7 +225,7 @@
opt_tag = decode_integer(data_without_len, pos, 2); pos += 2; \
debug("sms.smpp", 0, "Optional parameter tag (0x%04lx)", opt_tag); \
opt_len = decode_integer(data_without_len, pos, 2); pos += 2; \
- debug("smpp_pdu", 0, "Optional parameter length read as %ld", opt_len);
+ debug("sms.smpp", 0, "Optional parameter length read as %ld", opt_len);
#define TLV(tag_id, min_len, max_len) \
if (tag_id == opt_tag) { \
if ((min_len != -1 && opt_len < min_len) || (max_len != -1 && opt_len > max_len) || \
@@ -240,14 +240,13 @@
dict_put(p->optional_parameters, tag_str, opt_val); \
octstr_destroy(tag_str); \
opt_val = NULL; \
- }
- #define OPTIONAL_END \
- if (opt_val != NULL) { \
- error(0, "SMPP: Uknown optional parameter (%ld) for PDU type (%ld) received!", \
+ } else
+ #define OPTIONAL_END \
+ { \
+ error(0, "SMPP: Uknown optional parameter (0x%04lx) for PDU type (%ld) received!", \
opt_tag, type); \
- octstr_destroy(opt_val); \
} \
- } \
+ } \
}
#define INTEGER(name, octets) \
p->name = decode_integer(data_without_len, pos, octets); \
smime.p7s
Description: signature
