Commit Graph

90972 Commits

Author SHA1 Message Date
Cal Turney 4f8343feb7 HTTP: Change to TestDecryptTLS.test_tls13_rfc8446
The HTTP change in this MR changes the output of the Ubuntu
pipeline test. This commit hopefully fixes  that error.
2024-04-05 21:37:05 +00:00
Cal Turney 447023d544 HTTP: Fixed indentaion error
Fixed indentation error in the script at line 545
2024-04-05 21:37:05 +00:00
Cal Turney 18a1e3294f HTTP: Change to Ubuntu pipeline test
The Ubuntu pipeline test is failing because it is expecting
something that my MR has changed.

 This is a modification of the test file that accomodates
 the new output.
2024-04-05 21:37:05 +00:00
Cal Turney 49b3fb60b2 HTTP: Incorrect request/response matching
This has been corrected using wmem_map() fucnctions.
The full method is in the comments.

HTTP: removed unused function declaration

HTTP: Ranges are used to match reqs/resps

This does NOT fix incorrect URI matching in asynchronously ordered
GETS with a status of 206.

HTTP: Request-response matching corrected

/*
*  Unlike protocols such as NFS and SMB, the HTTP protocol (RFC 9110) does not
*  provide an identifier with which to match requests and responses. Instead,
*  matching is solely based upon the order in which responses are received.
*  HTTP I/O is asynchronously ordered such that, for example, the first of four
*  GET responses is matched with the first outstanding request, the next
*  response with the second oldest outstanding request and so on (FIFO).
*  The previous method instead matched responses with the last of several
*  async requests rather than the first (LIFO), and did not handle requests
*  with no responses such as the case where one or more HTTP packets were
*  not captured. Whenever there were multiple outstanding requests, the SRT
*  (RTT) stats were incorrect, in some cases massively so.
*
*  While RFC 9110 expressly prohibits matching via byte ranges because, among
*  other things, the server may return fewer bytes than requested, the first
*  number of the range does not change. Unlike HTTP implementations, Wireshark
*  has the problem of requests/responses missing from the capture file.
*  In such cases resumption of correct matching was virtually impossible and
*  all matching was incorrect from that point on.
*
*  The method of matching used herein is able to recover from packet loss,
*  any nummber of missing frames, and duplicate range requests. The
*  method used is explaned within the comments.

HTTP: Fixed no resp_in

When a GET request has a range and the response does not,
"Response in" was not being displayed in the request.although
that frame number was available.

HTTP: Fixed error in last commit

HTTP: corrected request/response

Matching was not compliant with RFC9110 when requests were sent
asynchronously ordered fashion. A new matching method has been
added to handle cases where packets are missing from the capture.

HTTP: correct req/resp matching without comments

This is the same code with the commented out code removed.

HTTP: Fix request/reply matching

When asynchrously (yet ordered) requests and replies were matched
according to LIFO rather than FIFO. Next and previous request
and response has been eliminated because there is no use case for
them and they bloat the Packet Detail.

HTTP: Fix request/reply matching

Fixed clang errors
2024-04-05 21:37:05 +00:00
Cal Turney 84c0e00130 HTTP: Fix request/reply matching
Fixed clang errors
2024-04-05 21:37:05 +00:00
Cal Turney 4751c4a9da HTTP: Fix request/reply matching
When asynchrously (yet ordered) requests and replies were matched
according to LIFO rather than FIFO. Next and previous request
and response has been eliminated because there is no use case for
them and they bloat the Packet Detail.
2024-04-05 21:37:05 +00:00
Cal Turney 40f57684d9 HTTP: correct req/resp matching without comments
This is the same code with the commented out code removed.
2024-04-05 21:37:05 +00:00
Cal Turney f97a8a5b58 HTTP: corrected request/response
Matching was not compliant with RFC9110 when requests were sent
asynchronously ordered fashion. A new matching method has been
added to handle cases where packets are missing from the capture.
2024-04-05 21:37:05 +00:00
Cal Turney 437fd1dacd HTTP: Fixed error in last commit 2024-04-05 21:37:05 +00:00
Cal Turney 2670533eb5 HTTP: Fixed incorrect request/response matching
Matching of requests and responses were being done using LIFO rather than
FIFO.

The method of matching used in this change is able to recover from packet
loss, any nummber of missing frames, and duplicate range requests. The
method is explained within the comments.
2024-04-05 21:37:05 +00:00
Cal Turney 211c3034e7 HTTP: Request-response matching corrected
/*
*  Unlike protocols such as NFS and SMB, the HTTP protocol (RFC 9110) does not
*  provide an identifier with which to match requests and responses. Instead,
*  matching is solely based upon the order in which responses are received.
*  HTTP I/O is asynchronously ordered such that, for example, the first of four
*  GET responses is matched with the first outstanding request, the next
*  response with the second oldest outstanding request and so on (FIFO).
*  The previous method instead matched responses with the last of several
*  async requests rather than the first (LIFO), and did not handle requests
*  with no responses such as the case where one or more HTTP packets were
*  not captured. Whenever there were multiple outstanding requests, the SRT
*  (RTT) stats were incorrect, in some cases massively so.
*
*  While RFC 9110 expressly prohibits matching via byte ranges because, among
*  other things, the server may return fewer bytes than requested, the first
*  number of the range does not change. Unlike HTTP implementations, Wireshark
*  has the problem of requests/responses missing from the capture file.
*  In such cases resumption of correct matching was virtually impossible and
*  all matching was incorrect from that point on.
*
*  The method of matching used herein is able to recover from packet loss,
*  any nummber of missing frames, and duplicate range requests. The
*  method used is explaned within the comments.
2024-04-05 21:37:05 +00:00
Cal Turney bf57ada43f HTTP: Ranges are used to match reqs/resps
This does NOT fix incorrect URI matching in asynchronously ordered
GETS with a status of 206.
2024-04-05 21:37:05 +00:00
Cal Turney 6649fa88c1 HTTP: removed unused function declaration 2024-04-05 21:37:05 +00:00
Cal Turney 33ab83081d HTTP: Incorrect request/response matching
This has been corrected using wmem_map() fucnctions.
The full method is in the comments.
2024-04-05 21:37:05 +00:00
Stig Bjørlykke 24307ccdbe wslua: Add missing @since tag
DissectorTable.heuristic_new() was added to 4.2.0.
2024-04-05 21:29:41 +00:00
Guy Harris f650b22bb4 busmaster: update a URL to HTTPS.
[skip ci]
2024-04-05 14:23:26 -07:00
Stig Bjørlykke d17e3a2842 wslua: Improve documentation
Rename `desc` and `descr` to description in the documentation to
make the name more self explaining.

Added and fixed some @since tags.
2024-04-05 15:44:37 +02:00
John Thacker f3e4237af7 Qt: Expand on a comment
Expand on a comment about the issues, apparently now solved,
with nested event loops and processEvents.

[skip ci]
2024-04-05 13:21:35 +00:00
Pascal Quantin d6d6053716 LTE RRC: upgrade dissector to v17.8.0 2024-04-05 12:51:26 +00:00
Pascal Quantin 475661b597 F1AP: upgrade dissector to v17.8.0 2024-04-05 13:57:44 +02:00
John Thacker 07f68d0d15 http: Initialize a variable
Initialize len if it's going to be used in the return.
In certain cases we don't enter the loop and call
dissectr_http_message at all.

Fixup 76879a480a

Fix #19739
2024-04-05 11:08:28 +00:00
Darius Davis cc4f989805 Telnet: vSPC: Track the "vMotion conversation".
Fully dissect the VMOTION-PEER message, even in a one-pass dissection or when
the VMOTION-PEER-OK message was not captured.  This requires that we correlate
this Telnet conversation with the earlier one carrying the VMOTION-GOAHEAD
message, and extracting the length of the sequence number from there.
2024-04-05 11:07:05 +00:00
Darius Davis ca4f217083 conversation: Add support for a "blob" conversation-element type.
The new CE_BLOB is similar to CE_STRING, but can include zeros within its
value, is not NUL-terminated, and -- because it likely isn't printable text --
is displayed as hexadecimal.
2024-04-05 11:07:05 +00:00
Darius Davis d63bac4d77 Telnet: vSPC: Dissect "sequence" and "secret" in easy cases.
For a VMOTION-GOAHEAD message, it is likely that we can use an earlier message
in the same conversation to determine the length of the "sequence" field,
allowing us to fully dissect that message.  In a two-pass analysis, even the
length from the VMOTION-PEER-OK message allows for dissection of the preceding
VMOTION-PEER message.

For decoding the VMOTION-PEER message in one pass, it's going to require a bit
more work -- i.e. tracking the "vMotion conversation" across the two Telnet
conversations.
2024-04-05 11:07:05 +00:00
Stig Bjørlykke d6bc7d969d wslua: Add integer atttribute setter/getter macros
Use Lua Integer instead of Number for integer values to get the
correct type. This is needed when using Lua 5.3 and 5.4.
2024-04-05 11:05:27 +00:00
Darius Davis 0cbdec7f71 fix: Migrate packet-fix.h changes back to source files.
Changes were made to the generated packet-fix.h without making corresponding
changes to the underlying source material and scripts.

e0300eae: Changed "SYTLE" -> "STYLE", "CORRESPONDANT" -> "CORRESPONDENT"
5cd53414: Change the list terminator to "{ 0, NULL }"

Note that we have already made some modifications to the source .xml files
(in, for example, 23eac7dc and 78c05162), so I don't feel any qualms about
modifying them further here.

With these changes, the generated packet-fix.h is once again byte-for-byte
identical to the one in the repository.
2024-04-05 11:04:42 +00:00
Pascal Quantin 410b435fd7 E1AP: upgrade dissector to v17.8.0 2024-04-05 12:19:29 +02:00
Pascal Quantin 4fd6630d9b XnAP: upgrade dissector to v17.8.0 2024-04-05 09:58:35 +00:00
Stig Bjørlykke c84115f881 wslua: Add ProtoField attributes
Add read only ProtoField attributes for type, abbr, name, base,
valuestring, mask and desc.

This can be used for generic Lua field handling.
2024-04-05 09:20:12 +00:00
Stig Bjørlykke c48b750be9 wslua: Fix type conversion macro names
Change the name of type conversion macros after the convert
to C99 types.

Ping #19116
2024-04-05 09:17:58 +00:00
Darius Davis 600d66f1ac MSWSP: const-ify "GuidPropertySet".
There is no need for GuidPropertySet to be modifiable.  const-ifying it moves
about 8 kBytes of data to a read-only section.
2024-04-05 09:12:44 +00:00
John Thacker dc03f8790c IO Graph: Use a larger maximum index size
Switch from an int to an int64_t for the index size (where -1
is failure) for get_io_graph_index.

This allows more room to switch to a small minimum interval
(#13682) without overflow causing unexpected results (i.e.
packet much later in time mapping back to an earlier index.)
2024-04-05 09:11:19 +00:00
John Thacker fc77bd3ee9 Qt: Enable min/max button on GeometryStateDialogs by default
GeometryStateDialog is used when we want to remember user-set
geometry for a window. If we want the user to be able to control
the geometry, we probably want to allow minimization and maximization.

Pass Qt::Window as the default WindowFlag to GeometryStateDialog
(which is what WiresharkDialogs already do). This on most platforms
defaults to adding minimize and maximize buttons. (On some platforms,
like recent GNOME, we're at the mercy of various settings like

gsettings get org.gnome.desktop.wm.preferences button-layout

but the user can access minimize and maximize actions via right-clicking
the window title bar. Unfortunately it won't stop user confusion.)

Fix #18980. Part of #12566.
2024-04-05 09:10:13 +00:00
Alexis La Goutte 0a636a636c QUIC: Remove support of old draft-deconnick-quic-multipath 2024-04-05 09:08:28 +00:00
Darius Davis 9de88ef317 fix: Use bsearch for tag lookup.
Eliminate another manually-coded binary search routine in favor of letting the
bsearch library function do the work for us.
2024-04-05 13:22:23 +10:00
John Thacker 0c637a2b5e reordercap: Handle IDBs in the middle of the file
We can read IDBs (and other non packet blocks) in the
middle of the file, so init the dump parameters after
reading all the frames. This will move the IDBs (and NRBs
and DSBs) to the start of the new output file (which might
have to happen if they're out of order.)

Note: Files with multiple Section Header Blocks probably still
aren't handled correctly, because the IDB number might need to be
rewritten (though we have some of that information after
commit 8ebde1309d)

Fix #19740
2024-04-04 20:32:12 -04:00
Cole Wu 8b802bffd1 Zigbee Direct: Fixed UUID mismatch with join, pjoin & leave characteristics 2024-04-04 22:29:32 +00:00
Gerald Combs 64158f3e3a Switch away from gshort and glong
Switch from gshort to more appropriate types in the IPDC and TDS
dissectors. Remove a check for G_HAVE_GLONG_DOUBLE, which appears to
have never existed.

We don't want automatically convert glongs any more, so remove the glong
conversion in convert-glib-types.py.

Ping #19116
2024-04-04 21:43:24 +00:00
Kas-tle 393d3e059d RakNet: Update encryption state on open_connection_reply_2 2024-04-04 21:39:04 +00:00
Guy Harris 9268a4838a ceph: give c_warn_ver() a more sensible data type.
I don't know why it's a gshort, i.e. a short, given that it returns
either -1, 0, or 1, indicating to Goldilocks that the version is too
small, just right, or too big, respectively.  Make it an int, as is used
for C library routines that perform comparisons.

It's not as if the return type matters anyway, given that we never check
it; add an XXX comment about this before all calls, asking whether the
dissection should continue if the call fails.
2024-04-04 12:22:59 -07:00
Pascal Quantin 93ff0a109a NGAP: upgrade dissector to v17.8.0 2024-04-04 19:12:35 +00:00
Martin Mathieson d54b84d0ac Protobuf: when matching against URIs, allow '*' wildcards 2024-04-04 18:32:25 +00:00
Gerald Combs 81f925907a Qt: Add automatic profile switching
Add the ability to automatically switch profiles based on display
filters. Add an "Auto Switch Filter" column to the Configuration
Profiles dialog which lets the user associate a display filter with a
profile. Add a "gui.profile_switch_check_count" which determines the
number of packets or events to check.

When loading a capture file, switch to the first profile with a matching
filter.

Add a short description to the User's Guide. Hold off on updating
ws-gui-config-profiles.png until we're sure the UI is stable.

Ping #10352, #14226
2024-04-04 09:35:50 -07:00
John Thacker 7130e33d30 Qt: Ensure Copy Bytes as C String is a valid C string
Use octal escapes padded to three digits instead of hex escapes.
An octal escape is limited to three digits by definition, whereas
hex escape sequence are not limited, which causes problems if
a hex escape is followed by a (non escaped) possible hex character.

Escape double quotes and backslash. Use the simple escapes of
non printable characters too (optional, but looks nicer.)

This possibly could go in wsutil as another ws_escape method, but
the fix needs to be backported to 4.2 so let's not introduce a
new public function yet.

Fix #19735
2024-04-04 15:27:26 +00:00
Pascal Quantin 7d5172dec1 NR RRC: upgrade dissector to v17.8.0 2024-04-04 15:05:43 +02:00
Pascal Quantin b456632e40 X2AP: upgrade dissector to v17.7.0 2024-04-04 11:20:01 +00:00
Martin Mathieson 5e290a99ab NMEA0183: make a function static 2024-04-04 10:41:46 +00:00
Pascal Quantin 8b2d15115b S1AP: upgrade dissector to v17.6.0 2024-04-04 11:57:12 +02:00
Stijn Last 668e6c6f79 packet-vnc.c: desegment multiple TCP packets when not enough data is received
Some VNC servers send an answer as multiple TCP packets
As long as not enogh data is received, desegment more TCP segments
2024-04-04 06:49:56 +00:00
John Thacker 7f2043c720 Qt: IO Graph human readable axis ticker with SI prefixes
Add a class for a QCustomPlot SI prefix axis ticker, using
format_units, and supporting both linear and log scales.
Use this for all the known IO Graph unit types (except don't
try to interpret BASE_UNIT_STRING yet.)

Use this to replace automatically scaling the data, avoiding
a lot of expensive floating point calculations for busy graphs.
This should make it easier to support smaller intervals
eventually (see #13682).

Fix #12827. Fix #14661.
2024-04-04 06:48:35 +00:00