diff options
author | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-02-14 19:46:03 +0000 |
---|---|---|
committer | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-02-14 19:46:03 +0000 |
commit | 8e0309025db90ef8b736fe3526a0ca4c0f0b0adb (patch) | |
tree | 6406be85b8f75fbf38bcc7a682d3c3130faea3e9 /epan/dissectors/dcerpc | |
parent | c73deeca2daccb6e04c0b08f04f196671a8fc177 (diff) |
make idl-lite compiler handle varying arrays
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@13400 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/dcerpc')
-rw-r--r-- | epan/dissectors/dcerpc/idl2eth.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/epan/dissectors/dcerpc/idl2eth.c b/epan/dissectors/dcerpc/idl2eth.c index a895736760..5234d87682 100644 --- a/epan/dissectors/dcerpc/idl2eth.c +++ b/epan/dissectors/dcerpc/idl2eth.c @@ -1501,6 +1501,17 @@ void parsetypedefstruct(int pass) FPRINTF(eth_code, "\n"); ptmpstr=strdup(tmpstr); break; + case BI_LENGTH_IS: + sprintf(tmpstr, "uvarray_%s", ptmpstr); + FPRINTF(eth_code, "static int\n"); + FPRINTF(eth_code, "%s(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)\n", tmpstr); + FPRINTF(eth_code, "{\n"); + FPRINTF(eth_code, " offset=dissect_ndr_uvarray(tvb, offset, pinfo, tree, drep, %s);\n", ptmpstr); + FPRINTF(eth_code, " return offset;\n"); + FPRINTF(eth_code, "}\n"); + FPRINTF(eth_code, "\n"); + ptmpstr=strdup(tmpstr); + break; case BI_SIZE_IS|BI_LENGTH_IS: sprintf(tmpstr, "ucvarray_%s", ptmpstr); FPRINTF(eth_code, "static int\n"); @@ -1559,6 +1570,10 @@ void parsetypedefstruct(int pass) sprintf(tmpstr, "ucarray_%s", ptmpstr); ptmpstr=strdup(tmpstr); break; + case BI_LENGTH_IS: + sprintf(tmpstr, "uvarray_%s", ptmpstr); + ptmpstr=strdup(tmpstr); + break; case BI_SIZE_IS|BI_LENGTH_IS: sprintf(tmpstr, "ucvarray_%s", ptmpstr); ptmpstr=strdup(tmpstr); |