summaryrefslogtreecommitdiff
path: root/epan/tvbuff.c
AgeCommit message (Collapse)AuthorFilesLines
2017-04-07simplify the description of tvb_memeql()Martin Kaiser1-2/+3
Make the description simpler than the code (hopefully). Change-Id: Iaede1a6eb18e25e379b719f9b66ecbef0c00ea63 Reviewed-on: https://code.wireshark.org/review/20956 Reviewed-by: Martin Kaiser <wireshark@kaiser.cx> Petri-Dish: Martin Kaiser <wireshark@kaiser.cx> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-01-31format_text_wmem -> format_textMichael Mann1-2/+2
All cases of the "original" format_text have been handled to add the proper wmem allocator scope. Remove the "original" format_text and replace it with one that has a wmem allocator as a parameter. Change-Id: I278b93bcb4a17ff396413b75cd332f5fc2666719 Reviewed-on: https://code.wireshark.org/review/19884 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-01-31Have tvb_format_text use wmem_packet_scope() memory.Michael Mann1-3/+4
It's only use is in dissectors or other tree creation APIs (where packet scope is valid), so have it use format_text_wmem with wmem_packet_scope(). Change-Id: I1f34e284a870c9844c6b27f4ae08a1e7efe54098 Reviewed-on: https://code.wireshark.org/review/19883 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-01-31Have tvb_format_stringzpad use wmem_packet_scope() memory.Michael Mann1-3/+4
It's only use is in dissectors, so have it use format_text_wmem with wmem_packet_scope(). Change-Id: I22121324fd47aee32174b65104458ad2ef329bd7 Reviewed-on: https://code.wireshark.org/review/19856 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-01-30Have format_text_wsp use wmem allocated memory.Michael Mann1-4/+4
format_text_wsp is fed into by tvb_format_text_wsp and tvb_format_stringzpad_wsp so those functions need to add a wmem allocated parameter as well. Most of the changes came from tvb_format_text_wsp and tvb_format_stringzpad_wsp being changed more so than format_text_wsp. Change-Id: I52214ca107016f0e96371a9a8430aa89336f91d7 Reviewed-on: https://code.wireshark.org/review/19851 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-01-13Decode TBCD strings in GSM MAP as per the GSM MAP spec.Guy Harris1-2/+2
Hex digits 0xa through 0xe are '*', '#', 'a', 'b', and 'c', respectively. Constify the dgt_set_t argument to tvb_bcd_dig_to_wmem_packet_str(), while we're at it. Bug: 13316 Change-Id: I7586f35d23fd262453779d99946e7ccad4b6ffab Reviewed-on: https://code.wireshark.org/review/19620 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-01-10Rename tvb_new_subset() to tvb_new_subset_length_caplen().Guy Harris1-1/+1
This emphasizes that there is no such thing as *the* routine to construct a subset tvbuff; you need to choose one of tvb_new_subset_remaining() (if you want a new tvbuff that contains everything past a certain point in an existing tvbuff), tvb_new_subset_length() (if you want a subset that contains everything past a certain point, for some number of bytes, in an existing tvbuff), and tvb_new_subset_length_caplen() (for all other cases). Many of the calls to tvb_new_subset_length_caplen() should really be calling one of the other routines; that's the next step. (This also makes it easier to find the calls that need fixing.) Change-Id: Ieb3d676d8cda535451c119487d7cd3b559221f2b Reviewed-on: https://code.wireshark.org/review/19597 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-12-12Rename non-EBCDIC-specific routines.Guy Harris1-8/+8
Those routines can handle any single-byte character set whose characters map to characters in the Basic Multilingual Plane; it could be used for extended ASCII, but we have another routine for that, mapping only characters with code points > 0x7f, so we just say "nonascii" rather than "ebcdic". Change-Id: I3d55b5d58e3e7ab08f3dfbfdb57a0301a30e71d4 Reviewed-on: https://code.wireshark.org/review/19214 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-12-12Fix handling of EBCDIC string fields.Guy Harris1-13/+33
Have a routine that takes a 256-element translation table and uses it to map various flavors of EBCDIC to Unicode. Have separate translation tables for "common" EBCDIC (everything that's the same in all EBCDIC code pages that include the original EBCDIC characters) and EBCDIC code page 037. Add ENC_EBCDIC_CP037 for code page 037. Change-Id: Ia882b3c0abef9e30eb54cd47396e6fa0d6342044 Reviewed-on: https://code.wireshark.org/review/19212 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-11-11[tvbuff] Fix tvb_find_guint16() searched_bytes is fromAndersBroman1-2/+2
start_offset(offset) and the while loop should be on searched_bytes. Change-Id: I62343f7cb04f9110f773ba1ada8dbcbfbd262861 Reviewed-on: https://code.wireshark.org/review/18741 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-10-22Add T.61 character set supportPascal Quantin1-0/+31
Bug: 13032 Change-Id: I6bf2cc2c43a6262d899a304df6576d9831115966 Reviewed-on: https://code.wireshark.org/review/18350 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-10-22More checks for localtime() and gmtime() returning NULL.Guy Harris1-3/+10
And some comments in the case where we're converting the result of time() - if your machine's idea of time predates January 1, 1970, 00:00:00 UTC, it'll crash on Windows, but that's not a case where a *file* can cause the problem due either to a bad file time stamp or bad time stamps in the file. Change-Id: I837a438e4b875dd8c4f3ec2137df7a16ee4e9498 Reviewed-on: https://code.wireshark.org/review/18369 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-10-08add tvb_find_guint16() utilityFrancesco Fondelli1-0/+42
Change-Id: I75c0165948325c2e50918706d8a821411761727b Signed-off-by: Francesco Fondelli <francesco.fondelli@gmail.com> Reviewed-on: https://code.wireshark.org/review/17734 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-06-02clean up some comments in tvb_find_line_end()Martin Kaiser1-8/+7
Change-Id: I9025b479b31e3cc6f8108a163bf00d81008fd737 Reviewed-on: https://code.wireshark.org/review/15632 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-02-19Prevent inproper use of negative valueJaap Keuter1-2/+2
Coverity rightfully complains about inproper use of negative value. maxlength special value '-1' should be handled appropriately. Change-Id: Ie1818121e39fa668094d012980016444ca868e6e Reviewed-on: https://code.wireshark.org/review/13978 Reviewed-by: João Valverde <j@v6e.pt> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-01-17Fix build [-Werror=maybe-uninitialized]João Valverde1-13/+13
Found building with GCC 5.3.0 and CFLAGS="-g -Og". Change-Id: I5bc29b6e91cc98332a513c9d03b02d2f6906608d Reviewed-on: https://code.wireshark.org/review/13362 Reviewed-by: João Valverde <j@v6e.pt> Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2016-01-07Remove constness from bytestring_to_str() [-Wcast-qual]João Valverde1-1/+1
Change-Id: I7f942787dfdc4f76dd0ad5111d1eb528b20f0ba9 Reviewed-on: https://code.wireshark.org/review/13011 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: João Valverde <j@v6e.pt>
2015-12-02Only check for the last nibble being 0x0f.Guy Harris1-1/+8
That's what my_dgt_tbcd_unpack() did; do the same thing here. Change-Id: Ia68c6ba652c748bd2661fd6eda736e880f414dc5 Reviewed-on: https://code.wireshark.org/review/12359 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-08-04tvb_new_octet_aligned() should return both the captured and reportedAndersBroman1-1/+1
length set to datalen in the returned tvb. Change-Id: Ie6649a285a9fa4a0564e29ce18ec9459b8da2541 Reviewed-on: https://code.wireshark.org/review/9861 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-02-21Remove tvb_ from the names of wsutil mempbrk routines.Guy Harris1-14/+14
Routines that don't take a tvbuff as an argument shouldn't have tvb_ in the name. Change-Id: I3550256551e30b3f329cbbfca71ef27c727d29c0 Reviewed-on: https://code.wireshark.org/review/7302 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-02-12Fix crash at startup in SSE4.2 code when running a 32 bits Windows buildPascal Quantin1-2/+2
There is no guarantee that a g_malloc'ed memory block will be aligned on a 128 bits boundary Instead use a static variable definition (at the cost of exposing the HAVE_SSE4_2 compilation flag in ws_mempbrk.h) Change-Id: I661bf479a9d458d64c96bafc940c519d29a4780b Reviewed-on: https://code.wireshark.org/review/7070 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2015-02-11Combine SSE and pre-compiled patterns for faster pbrkHadriel Kaplan1-28/+28
This combines the SSE4.2 instructions usage, with pre-compiled pattern searching usage, for a faster pbrk search method. Testing against large files of HTTP and SIP, there is about a 5% performance improvement by using pre-"compiled" patterns for guint8_pbrk() instead of passing it the search string and having it build the match array every time. Similar to regular expressions, "compiling" the pattern match array in advance only once and using the "compiled" patterns for the searches is faster than compiling it every time. Change-Id: Ifcbc14a6c93f32d15663a10d974bacdca5119a8e Ping-Bug: 10798 Reviewed-on: https://code.wireshark.org/review/6990 Petri-Dish: Hadriel Kaplan <hadrielk@yahoo.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-01-07tvb_bytes_to_ep_str -> tvb_bytes_to_strMichael Mann1-10/+1
Change-Id: I79c613cbdd8dc939dd4c29ebc477fb6eefd5bfc4 Reviewed-on: https://code.wireshark.org/review/6371 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-01-07tvb_bytes_to_ep_str_punct -> tvb_bytes_to_str_punctMichael Mann1-2/+2
Also change bytestring_to_str to match bytes_to_ep_str_punct functionality (limiting byte string size) Change-Id: Idb958c7f0c203d103629469302b81fa922714f7e Reviewed-on: https://code.wireshark.org/review/6369 Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-01-04Make all Lua code use wmem not ememHadriel Kaplan1-0/+9
Changed all remaining code in wslua that was using emem, to use wmem or simpler methods. Bug: 9927 Change-Id: I3d19a770e0fd77d996bdb6b61a76a722cc2bcd55 Reviewed-on: https://code.wireshark.org/review/6109 Petri-Dish: Michael Mann <mmann78@netscape.net> Reviewed-by: Hadriel Kaplan <hadrielk@yahoo.com> Petri-Dish: Hadriel Kaplan <hadrielk@yahoo.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-01-02tvb: implement endianness-paramterized gettersEvan Huus1-3/+111
e.g. tvb_get_guint16(tvb, offset, ENC_LITTLE_ENDIAN) Change-Id: Iea02fd59b13678aca741d028fb1f66f334447498 Reviewed-on: https://code.wireshark.org/review/6191 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Evan Huus <eapache@gmail.com>
2014-09-25reassembly: fix when fragment cut off by snapshotEvan Huus1-1/+4
Also add an assertion to tvb_generic_clone_offset_len so that it throws an error *before* allocating memory, as otherwise that memory is leaked. Bug: 10474 Change-Id: I5036cefac16841914a59670c64979cf599bf7969 Reviewed-on: https://code.wireshark.org/review/4234 Petri-Dish: Evan Huus <eapache@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Evan Huus <eapache@gmail.com>
2014-08-21Don't assert out on tvb_memcpy() with a null data pointer if the length is 0.Guy Harris1-3/+11
If the length is 0, there's nothing to copy, so it doesn't matter if there's no data to copy from. This fixes problems caused by allocating a zero-length buffer and using that as the data for a tvbuff; the allocation returns null, so the data pointer is null. Change-Id: I8037ae4b96d30e90a716852bb7e22d3980444f83 Reviewed-on: https://code.wireshark.org/review/3761 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-08-02Add a routine to check whether all bytes implied by a 64-bit length exist.Guy Harris1-0/+18
This lets us blow up with oversized 64-bit length values, before casting them to the 31-bit lengths we can actually handle in Wireshark, rather than blindly casting them with weird results. Use that in the MySQL dissector, and, if we get past the test, cast the lengths to int to squelch warnings. Change-Id: I3a5e9bd0027fa4ddcb9622f77952dba8f6b23c27 Reviewed-on: https://code.wireshark.org/review/3362 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-07-24Micro-optimize tvbuff:Jakub Zawadzki1-24/+10
- compute_offset_and_remaining(...) is a little bit faster than check_offset_length(.., .length_val = -1); - tvb_find_guint8(), tvb_pbrk_guint8() - both function are limiting data to MIN((unsigned) maxlength, tvb_len) - do the same with less count of ifs. Change-Id: I7761d77b6282d800eea94852d5c6543aef4bc7ca Reviewed-on: https://code.wireshark.org/review/2829 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-07-06Clean up handling of missing functions.Guy Harris1-1/+1
With autotools, CMake, and nmake, if we have a function, #define HAVE_{function_name_in_all_caps}, otherwise don't #define it. If we provide our own version of a function in libwsutil, make sure we have a header that declares it, and *ONLY* include that header if HAVE_{function_name_in_all_caps} is *NOT* defined, so that we don't have the system declaration and our declaration colliding. Check for inet_aton, strncasecmp, and strptime with CMake, just as we do with autotools. Simplify the addition of {function_name_in_all_caps}_LO to libwsutil in autotools. Change-Id: Id5be5c73f79f81919a3a865324e400eca7b88889 Reviewed-on: https://code.wireshark.org/review/2903 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-07-03Manually revert "Make COMPUTE_OFFSET and COMPUTE_OFFSET_AND_REMAINING macros."Jakub Zawadzki1-85/+79
This reverts commit b136182ad41b0552421992f36f3b70fa497fd658 This function are already marked inline, and profiler don't show much difference in performance, revert as previous version is cleaner. Change-Id: I1ac2c30a91b46278730ceee127efa086c7fbc6d6 Reviewed-on: https://code.wireshark.org/review/2828 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-09Try to fix the builds.AndersBroman1-2/+1
Change-Id: I3ccb5c1b40504cd9314da5a09b225e3e2bf991b8 Reviewed-on: https://code.wireshark.org/review/2073 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-09Add sse4.2 optimized function ws_mempbrk_sse42()Jakub Zawadzki1-16/+13
In text protocols, like SIP, lot of time is spend guint8_pbrk(), assume that text is not binary (no NULs), and use SSE4.2 pcmpistri instruction. Also move & rename guint8_pbrk() from tvbuff.c as _ws_mempbrk. HAVE_SSE42 must be defined to use _ws_mempbrk_sse42() only activaded for Windows currently. Change-Id: Ic853d84805bdb6492c4f45d2bcc79a973fd9804e Reviewed-on: https://code.wireshark.org/review/1730 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-05-14Revert "Don't throw for offset at end of TVB with len -1."Evan Huus1-18/+0
This reverts commit fe195c0c978b4b92dc5a77daa6449a7f1314243d. Conflicts: epan/tvbuff.c Change-Id: I1af618d0bd1e6211281b6d67c0ad197cfa513a0c Reviewed-on: https://code.wireshark.org/review/1639 Reviewed-by: Evan Huus <eapache@gmail.com>
2014-04-25Make COMPUTE_OFFSET and COMPUTE_OFFSET_AND_REMAINING macros.AndersBroman1-81/+87
Change-Id: I7a7b5869947499c2e0edb4de4bb462d8e8c19fc7 Reviewed-on: https://code.wireshark.org/review/1346 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-04-25Add a get_ebcdic_string() routine, similar to other get_XXX_string() routines.Guy Harris1-61/+63
Use it in epan/tvbuff.c. Do some other cleanups while we're at it. Change-Id: I7aed37a568373b896aacfd23f986d445b58b77b7 Reviewed-on: https://code.wireshark.org/review/1342 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-04-25Fix some white space.Guy Harris1-5/+5
Change-Id: I9adec36251e27e71c530e64a472ab7562bd07fed Reviewed-on: https://code.wireshark.org/review/1340 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-04-25Move the XXX-to-UTF-8 loops to routines in epan/charsets.c.Guy Harris1-445/+87
This moves a bunch of character set knowledge into epan/charsets.c. Change-Id: Ieb79dcaac9753c77703af756b666ad2ca9385d9e Reviewed-on: https://code.wireshark.org/review/1339 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-04-25Move GSM guint8 to unicode conversion functions to charsets.cJakub Zawadzki1-58/+2
charsets.c is already place with huge number of conversion tables. Also make gsm_default_alphabet gunichar2, all values fits in 2 bytes. Change-Id: Ia5ab6c176b4fec21ec76b06513c1d00794ba10ef Reviewed-on: https://code.wireshark.org/review/1328 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-04-25Move mktime_utc() from tvbuff.c to wsutil/time_util.cJakub Zawadzki1-40/+1
Also do little cleanup in mktime_utc (one big #ifndef) Change-Id: I8f721ba76cad856cfef0a2d78e7f98686f8e4e3f Reviewed-on: https://code.wireshark.org/review/1327 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-04-24Fix counting/ checking for leap years in mktime_utc()Jakub Zawadzki1-4/+9
When HAVE_TIMEGM is undefined mktime_utc() might output one day shift (+86400s) for (years <= 1967 or years >= 2100) && month >= 3 { .tm_mday = 1 .tm_mon = 2 .tm_year = 67 } mktime_utc() = -89436590 // Thu Mar 2 00:00:00 UTC 1967 gmtime() = -89596800 // Wed Mar 1 00:00:00 UTC 1967 { .tm_mday = 1 .tm_mon = 2 .tm_year = 200 } mktime_utc() = 4107628800 // Tue Mar 2 00:00:00 UTC 2100 gmtime() = 4107542400 // Mon Mar 1 00:00:00 UTC 2100 Change-Id: I1a544762fa5178c8798496d7dc30a2e767919149 Reviewed-on: https://code.wireshark.org/review/1287 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-04-23Don't throw for offset at end of TVB with len -1.Evan Huus1-0/+18
g867a1827e7dc88896ee27a107eb35c4b3973d270 introduced a change to cleanup/fix handling of bounds checks for -1 length fields, but it ended up guaranteeing a throw for 0-length tvbs, which isn't good; we ought to be able to add 0-length FT_PROTOCOL items at the very least. Better names for the function than _cheat are welcome, but I want to shut up the buildbot. Change-Id: I24610f947d03dac32766e2a0ffa0ff7bcc74c3e8 Reviewed-on: https://code.wireshark.org/review/1303 Reviewed-by: Evan Huus <eapache@gmail.com>
2014-04-23Another cut-and-pasteo - UCS-4/UTF-32 should fetch 4-byte characters.Guy Harris1-2/+2
Change-Id: Iff4a659cb0d0062cc149f451e49474c8db4143cd Reviewed-on: https://code.wireshark.org/review/1292 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-04-23Fix copy & paste error in tvb_extract_utf_16_string, tvb_extract_ucs_4_string.Jakub Zawadzki1-3/+3
Use proper p{le,n}toh16 macro depending on endianess. Change-Id: I8323e4296ec88e2cb24f54a1d8dc89328edb1957 Reviewed-on: https://code.wireshark.org/review/1285 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-04-21(Trivial) Clean up a comment; Fix spelling errors; Do some whitespace changes.Bill Meier1-70/+70
Change-Id: I57fb3c0d1ba97674c01c4c4799bf36696659c82b Reviewed-on: https://code.wireshark.org/review/1237 Reviewed-by: Bill Meier <wmeier@newsguy.com> Tested-by: Bill Meier <wmeier@newsguy.com>
2014-04-17Add tvb_get and proto_tree_add for string-encoded byte arraysHadriel Kaplan1-0/+30
This commit adds tvb_get_string_bytes and proto_tree_add_bytes_item routines for getting GByteArrays fields from the tvb when they are encoded in ASCII hex string form. The proto_tree_add_bytes_item routine is also usable for normal binary encoded byte arrays, and has the advantage of retrieving the array values even if there's no proto tree. It also exposes the routines to Lua, both so that a Lua script can take advantage of this, but also so I can write a testsuite to test the functions. Change-Id: I112a038653df6482a5d0ebe7c95708f207319e20 Reviewed-on: https://code.wireshark.org/review/1158 Reviewed-by: Hadriel Kaplan <hadrielk@yahoo.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-04-14Add tvb_get and proto_tree_add for string-encoded timestampsHadriel Kaplan1-0/+291
This commit adds tvb_get_string_time and proto_tree_add_time_item routines for getting nstime fields from the tvb when they are encoded in ASCII string form. The proto_tree_add_time_item routine is also usable for normal big/little-endian encoded time_t, and has the advantage of retrieving the value even if there's no proto tree. It also exposes the routines to Lua, both so that a Lua script can take advantage of this, but also so I can write a testsuite to test the functions. Change-Id: I955da10f68f2680e3da3a5be5ad8fdce7ed6808c Reviewed-on: https://code.wireshark.org/review/1084 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-04-13Add ENC_ASCII_7BITS encodingPascal Quantin1-2/+79
Change-Id: I01ec87ff4181afb5b2de487fd5f5200f8d62f17d Reviewed-on: https://code.wireshark.org/review/1088 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2014-04-12Get rid of more tvb_get_nstringz* calls.Guy Harris1-0/+18
Add an FT_STRINGZPAD type, for null-padded strings (typically fixed-length fields, where the string can be up to the length of the field, and is null-padded if it's shorter than that), and use it. Use IS_FT_STRING() in more cases, so that less code needs to know what types are string types. Add a tvb_get_stringzpad() routine, which gets null-padded strings. Currently, it does the same thing that tvb_get_string_enc() does, but that might change if we don't store string values as null-terminated strings. Change-Id: I46f56e130de8f419a19b56ded914e24cc7518a66 Reviewed-on: https://code.wireshark.org/review/1082 Reviewed-by: Guy Harris <guy@alum.mit.edu>