reported by check_typed_proto_items.py
packet-couchbase.c:1403 proto_tree_add_item called for hf_extras_nmeta - item type is FT_UINT32 but call has len 2
packet-couchbase.c:1405 proto_tree_add_item called for hf_extras_nru - item type is FT_UINT16 but call has len 1
packet-couchbase.c:1426 proto_tree_add_item called for hf_extras_nmeta - item type is FT_UINT32 but call has len 2
packet-couchbase.c:1453 proto_tree_add_item called for hf_extras_nmeta - item type is FT_UINT32 but call has len 2
packet-couchbase.c:1471 proto_tree_add_item called for hf_extras_nmeta - item type is FT_UINT32 but call has len 2
packet-couchbase.c:1522 proto_tree_add_item called for hf_extras_nru - item type is FT_UINT16 but call has len 1
These were detected by running check_typed_item_calls.py
with --consecutive, which flags items that have different
labels but the same filter string. Usually this is because
of copy/paste.
Quite a few similar bugs still exist, will address in a future commit.
'couchbase.flex_frame_extras' exists multiple times with incompatible types: FT_STRING and FT_UINT8
Change-Id: Ide607ca786e19015f4aae3cfbe85675581968267
Reviewed-on: https://code.wireshark.org/review/38011
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
When dissecting response values with a non-zero status, the length
calculation was incorrectly using the entire bodylen and not the
actual value_len. This is likely due to an error in adding support for
flex_frame_extras, before which bodylen == valuelen.
Change-Id: I1d622bea582abcfafc5e97881d94fd7a7db6c80a
Reviewed-on: https://code.wireshark.org/review/37598
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Reviewed-by: Jim Walker <jim@couchbase.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Both of these opcodes can have XATTRs present in the binary
encoding. Add them to the set of opcodes for which we decode XATTRs.
Change-Id: Iee09c720dc4306b8e9c4ebb07673b2709f079a24
Reviewed-on: https://code.wireshark.org/review/37597
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Reviewed-by: Jim Walker <jim@couchbase.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Add support for decoding the CreateAsDeleted flag for subdocument
doc_flag.
Also add some Hello feature flags which were missing (VAttr and
Point-in-Time Recovery).
Change-Id: I7ae1b6e787ee038b5d0f1dbd416f3675eb3be697
Reviewed-on: https://code.wireshark.org/review/37593
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Reviewed-by: Jim Walker <jim@couchbase.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
The static arrays are supposed to be arrays of const pointers to int,
not arrays of non-const pointers to const int.
Fixing that means some bugs (scribbling on what's *supposed* to be a
const array) will be caught (see packet-ieee80211-radiotap.c for
examples, the first of which inspired this change and the second of
which was discovered while testing compiles with this change), and
removes the need for some annoying casts.
Also make some of those arrays static while we're at it.
Update documentation and dissector-generator tools.
Change-Id: I789da5fc60aadc15797cefecfd9a9fbe9a130ccc
Reviewed-on: https://code.wireshark.org/review/37517
Petri-Dish: Guy Harris <gharris@sonic.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Stop including glib.h in dissectors, this will come in implicitly with
packet.h including proto.h, an essential include file for dissectors.
While at it, config.h is no longer conditional and stdio.h is usually
not needed either. Some other cleanups too.
Change-Id: I60c12f16d7ef1e6398509293031ffed7460d2c61
Reviewed-on: https://code.wireshark.org/review/36969
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Add new HELLO
* open tracing
* preserve TTL
Add some flex frame dissection
* impersonate (user name)
* preserve TTL (validate len is 0)
* open tracing has no further dissection
Change-Id: Id8ca22fbd7ba52ff04a9dcc062e8ce15f4b0ccaf
Reviewed-on: https://code.wireshark.org/review/36127
Reviewed-by: Dave Rigby <daver@couchbase.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Fix dead store (Dead assignement/Dead increment) Warning found by Clang
Change-Id: Icd18de17e7564b946ea177df252dffd2370ff1a0
Reviewed-on: https://code.wireshark.org/review/35408
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Decode the v1/v2.0 formats which are relevant for the upcoming
6.5.0 release.
Change-Id: Ie726f1ebd2457f6a36b096a0cd0bed9c94f713df
Reviewed-on: https://code.wireshark.org/review/35251
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Previously extras in any mutation (e.g. ADD, SET) response would
be marked as illegal, as these used to return no extras.
More recently, extras can be returned in mutations if the
connection has negotiated the MUTATION_SEQNO feature.
The extras can contain the mutation's sequence number and the
vBucket UUID.
This commit adds a new field (couchbase.extras.mutation_seqno) to
achieve this, as the existing field couchbase.extras.seqno is used
for a different purpose and is only a UINT32, whereas a UINT64 is
returned as part of the extras; the existing
couchbase.extras.vbucket_uuid is used for the vBucket UUID.
Change-Id: If8a5148f2115fce7a777b96ad22ba92d95c9ff71
Reviewed-on: https://code.wireshark.org/review/34540
Reviewed-by: Dave Rigby <daver@couchbase.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Add the optional HCS field to the snapshot marker (only send on
when non-zero for disk snapshots).
Also, remove the durability timeout field from DCP_PREPARE as it is
not sent and the UI warns about invalid extras length.
Change-Id: I46955e2a719d28a70377bc6addb65fa3356ea1d4
Reviewed-on: https://code.wireshark.org/review/34323
Reviewed-by: Jim Walker <jim@couchbase.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
The timeout value was removed from the DCP PREPARE
message as it was never used (and will never occur
in a released version of Couchbase)
Change-Id: I95f5bb3a0878237bf0339da48476fda437740c25
Reviewed-on: https://code.wireshark.org/review/33984
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Reviewed-by: Jim Walker <jim@couchbase.com>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Given that we send the prepare seqno for DCP_ABORT and we have
ensured it is sent as non-zero, we may as well send it in the DCP_COMMIT
to allow replica nodes to do some additional error checking.
Change-Id: I67fb7d3e98a6518ec80c1a713e8d1d5637425a75
Reviewed-on: https://code.wireshark.org/review/33724
Reviewed-by: Jim Walker <jim@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Couchbase DCP sequence numbers start from zero, incrementing by one
for each message; and are generally displayed inside Couchbase as
decimal.
For ease of use with Wireshark dumps, print them as decimal instead of
hex.
Change-Id: I590fe137b96263d589e0ccc3161b57ffee40854b
Reviewed-on: https://code.wireshark.org/review/33660
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Reviewed-by: Pascal Quantin <pascal@wireshark.org>
Petri-Dish: Pascal Quantin <pascal@wireshark.org>
Reviewed-by: Jim Walker <jim@couchbase.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
DCP_ABORT now needs the prepare seqno for MB-34474.
Change-Id: Idf36f85f593735e31c7be96b0c9253d90fdb825f
Reviewed-on: https://code.wireshark.org/review/33597
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
DCP_COMMIT, DCP_ABORT and DCP_SEQNO_ACK no longer include two seqnos,
just a single one.
Add missing status codes for durability-related statuses.
Change-Id: I97b847dd43c59405d69410ef28b0b362111c0fbd
Reviewed-on: https://code.wireshark.org/review/33339
Reviewed-by: Ben Huddleston <ben.huddleston@couchbase.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Change-Id: If3f318dbaa98df4d991bd447341d1a27048cae50
Reviewed-on: https://code.wireshark.org/review/32031
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Update the flag descriptors for options inside a set_with_meta and
del_with_meta message, whilst also adding a new flag, IS_EXPIRATION,
for only del_with_meta.
Change-Id: I2f97c5aecb618e90783a39ce026ae0feba110dfd
Reviewed-on: https://code.wireshark.org/review/31675
Reviewed-by: Jim Walker <jim@couchbase.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Using the recent updates occasional 'trailing' byte warnings
occur if the key encodes a collection-ID, with these changes
we now get much better key decoding, without the warnings
with and without collections.
Change-Id: I9fc1e0d807c8054065a7346a09b0ce99d05f1e63
Reviewed-on: https://code.wireshark.org/review/30956
Reviewed-by: Dave Rigby <daver@couchbase.com>
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
Add support for decoding a collection-ID from the
key-bytes.
Update DCP as collection_len is no longer in the
protocol and the system events have changed.
Change-Id: Ib910083d929a906729e2bba2b0f07ba23e093cf5
Reviewed-on: https://code.wireshark.org/review/30895
Reviewed-by: Dave Rigby <daver@couchbase.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Update the couchbase packet dissector with some re-factoring of the
FlexFrame dissector and then extra functionality for:
* FlexFrame on requests (magic 0x08)
* Durability
* Out-Of-Order requests
* DCP Stream ID
Additional checks are added to warn/error for invalid frame lengths and
for the case where the FlexFrame byte0 is 0xff, which is not defined by
the protocol.
Change-Id: I5f1fec8293284dadbdef717d02fa1eef27da7a0c
Reviewed-on: https://code.wireshark.org/review/30894
Reviewed-by: Dave Rigby <daver@couchbase.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Adding delete time to the expirtation packet
Change-Id: I1881892122182a7656bde5b93e2de969f6f1b615
Reviewed-on: https://code.wireshark.org/review/30404
Reviewed-by: Jim Walker <jim@couchbase.com>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
gcd95e197ca renamed a bunch of "<proto>.ssl.port" preferences to
"<proto>.tls.port" but neglected to add obsolete entries for the old
preferences. Do so here.
Rename couchbase.tls_port to couchbase.tls.port to be in line with the
other TLS port preferences.
Change-Id: Ie23d6be0a5cb3616f37e41dbfbf13ad1b7206473
Reviewed-on: https://code.wireshark.org/review/29829
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Rename packet-ssl{,-utils}.[ch] to packet-tls{,-utils}.[ch].
Change-Id: I4732162ec131ddf0734b3dd191ccc9e48a76ce06
Reviewed-on: https://code.wireshark.org/review/29659
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Rename the "ssl" protocol to "tls" and add an "ssl" alias. Prefer "TLS"
over "SSL" in user interface text and in the documentation.
Fix the test_tls_master_secret test while we're here.
Bug: 14922
Change-Id: Iab6ba2c7c4c0f8f6dd0f6d5d90fac5e9486612f8
Reviewed-on: https://code.wireshark.org/review/29649
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
We *do* support units for FT_FLOAT and FT_DOUBLE, so use them.
Change-Id: I94dbce89c785109b2c6ef89243f5611963e63dc8
Reviewed-on: https://code.wireshark.org/review/25917
Reviewed-by: Guy Harris <guy@alum.mit.edu>
There's no guarantee that it'll be integral, and the spec doesn't seem
to imply that it's necessarily integral, so don't convert it to an
integer.
Given that it's a floating-point number, we might as well represent it
as an FT_DOUBLE. (XXX - we should support units for FT_FLOAT and
FT_DOUBLE.)
Change-Id: Ica43510ac147231f5530359cc78bb467f8d3be24
Reviewed-on: https://code.wireshark.org/review/25915
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Add support for collection commands
* SET/GET manifest
* DCP changes (mutation/deletion/system_event)
Add support for DCP delete_time, a new format for DCP deletion
Change-Id: Iec2000a40da37dcb1edf665a157dc7ab30d4c9d0
Reviewed-on: https://code.wireshark.org/review/25612
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Change-Id: Ia2565090f8dc30e17cd6a16614136d237577d282
Reviewed-on: https://code.wireshark.org/review/23535
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Using GCC version 7.1.1.
Change-Id: I7447a48fc97efb1eb15a016a29165f69d37f40a6
Reviewed-on: https://code.wireshark.org/review/23399
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
They do not have path, so the min_spec_size should be smaller
Change-Id: I5a77bcf742be5f8a00f0cf7a215f386a845673fa
Reviewed-on: https://code.wireshark.org/review/23349
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>