Commit Graph

2803 Commits

Author SHA1 Message Date
João Valverde 759c0feab3 CMake: Accept any supported Lua version by default 2023-08-17 18:16:12 +00:00
Markku Leiniö a8f8e79a57 Qt: Change formatString() to use localized byte units 2023-08-17 08:24:10 +03:00
João Valverde 5a1da4f692 Lua: Remove console.lua
Add Lua 5.1 support for the new IO Console Dialog. Remove the
obsolete console.lua file.
2023-08-16 15:19:00 +00:00
João Valverde 919bc0d6f5 CMake: Update FindLua module
Replace our code with the upstream version, simplified to search
only for our supported Lua versions.

This allows selecting Lua versions 5.2, 5.2 or "any". The default
is 5.2 only because supporting more than one Lua versions is
generally the wrong thing to do. Allow falling back to
5.1 *explicitly*
2023-08-16 15:19:00 +00:00
João Valverde 8ed0b47667 Qt: Add Lua console dialog
This adds a dialog in the Tools menu to open a console and evaluate
Lua code using the embedded Lua engine. It replaces the previous
console.lua implementation that was more limited to use, because
it relies on GUI bits exposed to Lua. It used two separate windows
for that reason.

The implementation uses the existing "funnel" API amd  relies heavily
on callbacks to maintain separation between GUI and epan code and
make it generic enough to possibly support more use cases than just
the Lua 5.2 console.

The open and close callbacks are used to install and remove a custom
print() lua function with dialog creation and destruction.

The eval callback is basically the same as luaL_dostring().
2023-08-16 15:19:00 +00:00
João Valverde 1826bce649 Lua: Remove dtd_gen.lua
Remove bundled dtd_gen.lua script. It has never been enabled.
Remove it as part of a policy to remove dead code.

Currently it breaks with a runtime error. I did not investigate
the root cause.
2023-08-14 20:26:17 +01:00
Gerald Combs 5ee5f6fb40 [Automatic update for 2023-08-13]
Update manuf, services enterprise numbers, translations, and other items.

services failed.
2023-08-13 16:23:17 +00:00
Martin Mayer 138a1bb8b9 do-irp: Add support for DO-IRP
Add dissector and support for Digital Object Identifier Resolution Protocol.

Closes #19077
2023-08-13 15:55:47 +00:00
Noan Perrot 081fc7a937 Initial work on supporting VP9
Initial work on supporting VP9

update release-notes.adoc

add vp9 to new protocol support section
fix warnings

replace 0xFF by 0 for bits mask
Fix warnings

Rename pid to pid_ext
Rename pg to pg_ext
2023-08-10 17:24:44 +00:00
João Valverde 6013a7623b WSUG: Add MAC Address Blocks entry to Tools 2023-08-10 10:39:25 +01:00
Dr. Lars Völker 6e41c0477d ASAM CMP: Adding support for ASAM CMP
The dissector supports data, control, status, and vendor defined
messages. As well as the following technologies:
- CAN
- CAN-FD
- LIN
- FlexRay
- Analog
- UART
- Ethernet
2023-08-08 19:16:27 +00:00
Dr. Lars Völker e5ced7ad79 HSFZ: Adding support for the HSFZ protocol 2023-08-08 08:38:26 +00:00
Markku Leiniö cc3af3ff9e Remove WOWW notes as it was not a new protocol 2023-08-07 18:14:44 +00:00
Guy Harris f9846ecb7c macos-setup.sh, WSDG: Qt 6 builds must be done manually on macOS.
Update macos-setup.sh to attempt to install Qt 6.2.4; that won't work,
but at least it means it doesn't install Qt 5, which is no longer used
as the default Qt version for builds.

Have macos-setup.sh not say you're ready to build Wireshark if Qt hasn't
been installed; if QT_VERSION was set but Qt wasn't installed, point to
the Wireshark Develper's Guide for instructions on how to download and
install it.

Have the Wireshark Developer's Guide give instructions on how to
download and install Qt 6, derived from the instructions for Windows but
modified for installing 6.2.4 on macOS.
2023-08-07 01:10:31 -07:00
Markku Leiniö c9daa6b656 WSUG: Documentation updates
- Update the 'File Set - List Files' and import dialog images
- Add missing boldings in options in TShark man page
2023-08-05 23:56:19 +00:00
Gerald Combs 391f9a3d63 GitLab CI: Switch the Windows x64 packages to Qt 6.5.2
Update the release notes.
2023-07-31 15:18:36 -07:00
João Valverde 1d0c142a9a GUI: Implement Tools->MAC Address Blocks menu entry
Add a dialog to lookup a MAC address or vendor name in the\
internal IEEE manufacturer registry.
2023-07-30 20:54:28 +00:00
Gerald Combs d5fb4db20c [Automatic update for 2023-07-30]
Update manuf, services enterprise numbers, translations, and other items.
2023-07-30 19:52:02 +00:00
João Valverde d2e85d783c Update release notes 2023-07-27 18:09:31 +01:00
Eugène Adell 939a9fb0a7 TCP: Summarize the completeness bitmask as a string 2023-07-27 07:34:52 +00:00
João Valverde 74bfa8a03d dfilter: Remove deprecated ~= operator symbol 2023-07-25 12:18:16 +00:00
John Thacker 1b82eda9eb epan: Register dynamic column fields and make them filterable
Make the text of each registered column a FT_STRING field that can be
filtered, prefixed with _ws.col - these work in display filters, filters
in taps, coloring rules, Wireshark read filters, and in the -Y, -R, -e,
and -j options to tshark. Use them as the default "Apply as Filter" value
for the columns that aren't handled by anything else currently.

Because only the columns formats that actually correspond to columns
get filled in (invisible columns work), register and deregister the
fields when the columns change.

Use the lower case version of the rest of the COL_* define for each
column as the field name.

This adds a number of conditions to "when are the columns needed",
including when the main display filter or any filter on a tap is
using one of these fields.

Custom columns are currently not implemented. For custom columns, the
tree then has to be further primed with any fields used by the custom
columns as well. (Perhaps that should happen in epan_dissect_run() -
are there any cases where we construct the columns and don't want to
prime with any field that custom columns contains? Possibly in taps
that we know only use build in columns.)

Thus, for performance reasons, you're better off matching an ordinary
field if possible; it takes extra time to generate the columns and many
of them are numeric types. (Note that you can always convert a non-string
field to a string field if you want regex matching, consult the
*wireshark-filter(4)* man page.) It does save a bit on typing (especially
for a multifield custom column) and remembering the column title might
be easier in some cases.

The columns are set before the color filters, which means that you
can have a color filter that depends on a built-in column like Info or
Protocol.

Remove the special handling for the -e option to tshark. Note that
the behavior is a little different now, because fixed field names
are used instead of the titles (using the titles allowed illegal
filter names, because it wasn't going through the filter engine.)
For default names, this means that they're no longer capitalized,
so "_ws.col.info" instead of "_ws.col.Info" - hopefully a small
price in exchange for the filters working everywhere.

The output format for -T fields remains the same; all that special
handling is removed (except for remembering if someone asked for
a column field to know that columns should be constructed.)

They're also set before the postdissectors, so postdissectors can
have access.

Anything that depends on whether a packet and previous packets are
displayed (COL_DELTA_TIME_DIS or COL_CUMULATIVE_BYTES) doesn't work
the way most people expect, so don't register fields for those.
(The same is already true of color filters that use those, along with
color filters that use the color filter fields.)

Fix #16576. Fix #17971. Fix #4684. Fix #13491. Fix #13941.
2023-07-25 00:49:52 +00:00
João Valverde d138e594b5 dfilter: Fix `all .. in` operator semantics
Fix the "all X in S" expression to be implemented as

    (x1 in S) AND (x2 in S) AND ... AND (xn in S)

Previously it was implemented as

    (X all_eq s1) OR (X all_eq s2) OR ... OR (X all_eq sn)

which does not implement set membership semantics correctly.

The implementation uses a list to build the set and the
set membership test is done with a SET_*_IN instruction
that tests if a register belongs to the set (list contents).

Example:

    Filter:
     all tcp.port in {10..15,20,30}

    Instructions:
     0000 READ_TREE        tcp.port         -> R0
     0001 IF_FALSE_GOTO    7
     0002 SET_ADD_RANGE    10 .. 15
     0003 SET_ADD          20
     0004 SET_ADD          30
     0005 SET_ALL_IN       R0
     0006 SET_CLEAR
     0007 RETURN

Fixes  #19188.
2023-07-24 22:25:33 +00:00
Markku Leiniö 261c2f24cc Add Zabbix protocol dissector
Features:
- Supports also compressed and TLS-encrypted Zabbix connections as well
  as TCP desegmenting
- Dissects both passive agent connections (10050/tcp, plaintext-based)
  and active agent, proxy and sender/trapper connections (10051/tcp,
  JSON-based), ports are configurable
- Detects passive agent conversations by checking the request being
  non-JSON (not depending on the well-known TCP ports)
- Calculates response times using protocol data saved in conversations
- Detects the connection type (proxy, agent, sender/trapper) and shows
  tree and Info column information accordingly
- Dissects protocols up to Zabbix version 6.4 (currently latest) and
  7.0 (currently in alpha)
- Does not support passive agent connections in Zabbix 3.x or earlier
  (it does not have the normal Zabbix header; note that Zabbix 4.0 was
  released in 2018)
2023-07-24 17:38:15 +03:00
Gerald Combs 2ac8231776 Release notes: We now have a Windows Arm64 package 2023-07-21 16:35:29 +00:00
Gerald Combs 1dfdb211b7 Tools: Move malloc debugging to a separate file
Set our various malloc debugging environment variables in a separate
`debug-alloc.env` file and document it in the Developer's Guide.
2023-07-21 16:33:58 +00:00
Jaap Keuter bc55a18fb1 WSUG: add subsections for the various preference panes 2023-07-20 17:39:10 +00:00
Markku Leiniö bd229c2a7c WSUG: Images of preferences 2023-07-18 16:38:17 +00:00
Gerald Combs a7f8bb991e WSUG: Note that we have a foundation. 2023-07-15 09:38:03 -07:00
Jaap Keuter 17ee2ad57e User Guide: Document preferences 2023-07-13 16:33:45 +00:00
João Valverde ab7896df6c dfilter: Add XOR logical operator
Fixes #19186.
2023-07-08 22:06:10 +00:00
João Valverde 0e82c6b4b8 dfilter: Remove limitation using subtraction
Remove the requirement for a space character to precede a
minus token.

Fixes #19189.
2023-07-07 23:04:31 +01:00
João Valverde 794e3a13c0 Move some release notes items
[skip ci]
2023-07-07 22:52:44 +01:00
Sake Blok 25eb0225d7 WSUG: Add note about subtract operator quirk 2023-07-06 09:44:37 +00:00
João Valverde 6730cc3a65 Add Unix time support for absolute time field type
Add ABSOLUTE_TIME_UNIX absolute time type, to allow
date and time values to be represented in Unix time,
besides other existing formats.
2023-07-03 21:45:50 +00:00
John Thacker ddc7e4e49a RTP: Improve selection of streams for RTP Analysis/Player
If we are only trying to find RTP streams that match the current
packet, there's no reason to retap all other packets after
dissecting the current packet. This speeds up selection in that
case.

It is possible for an RTP session to contain multiple SSRCs
(such as with SDP negotiating BUNDLE (RFC 9143) as in WebRTC,
also see RFC 8872 for a general disscussion.)

The existing mechanism for searching for matching RTP streams for
the currently selected packet does not deal well with this.
findRtpStreams adds one copy of the forward stream (however, with the
same SSRC each time) for each stream bundled together on the session.
It also adds one copy for each stream in the reverse direction, only
using the first encountered SSRC.

When processed later, that means that only one reverse direction RTP
stream is added, which might not be the desired pair of the forward
stream (e.g., audio and video are bundled in each direction.)

Worse, if and when the RTP stream IDs are freed, a double-free can occur
and crash.

Don't add an RTP stream more than once.

Change the behavior when the Ctrl key is selected to adding all
RTP streams that share the addresses and ports (in either direction)
regardless of SSRC. Adding everything in the bundle makes more sense,
especially since there's no good way to determine which of the
bundled reverse RTP streams are paired with the selected packet's
RTP stream.

Also try to handle the unusual case of more than one stream in
the current packet (could happen with unusual tunneling.)
2023-07-03 01:57:04 +00:00
John Thacker ffbdbc6496 docs: Fix help button URLs to LTE and RTP chapters
The LTE and RTP chapters are sub-sections, and don't get an
entire page in the chunked view. They need to point to the
higher level section plus an anchor.

Related to #17982
2023-07-01 11:51:07 +00:00
João Valverde 8909312cd2 dfilter: Allow arithmetic expressions as set elements
Sets can now accept arithmetic expressions, not just fields
and constants.

Besides making sets more generic and useful it also nicely
simplifies the grammar specification.

The only caveat is that the use of curly braces can become
a bit confusing.
2023-06-30 15:24:59 +00:00
Jianwei Mao b4cd264912 release-notes: update the url of APN6 to its homepage. 2023-06-27 16:11:20 +00:00
João Valverde bd25b9f4cd dfilter: Make string slices a return an FT_STRING
Allow string slices (indexing) to work with internationalized
strings. The old behavior of indexing on byte boundaries can
be obtained using raw slices.
2023-06-26 00:46:18 +00:00
João Valverde bfed9c5d88 Release notes: Clean trailing whitespace
[skip ci]
2023-06-24 17:00:38 +00:00
Jianwei Mao 62be2fc961 release-notes: IPv6 dissector supports dissecting APN6 option now. 2023-06-21 17:52:48 +00:00
Chuck Craft 0acc81714d WSUG: example for curly braces around math expression 2023-06-21 16:37:23 +00:00
Stig Bjørlykke ed603e75d3 Qt: Update ws-filter-toolbar.png 2023-06-15 21:36:18 +00:00
John Thacker 0d3e6d64bd wsdg: Quick Start steps for tests with MSVC 2023-06-15 21:29:51 +00:00
Jones Syue 79ec9b4e12 wsdg backporting a patch: fix typo
When reading developer's guide about backporting,
it looks like the commit hash in this example is '1ab2c3d4',
and it is more consistent if we use 'backport-1ab2c3d4' instead of
'backport-g1ab2c3d4'.

This closes #19140

Signed-off-by: Jones Syue <jonessyue@qnap.com>
2023-06-15 10:31:48 +00:00
John Thacker 6ebf72ded1 Inject secrets through the GUI
Add a GUI option to append a DSB to the open file containing any
used TLS secrets from the session. The marks the file as having
unsaved changes.

Note #19128 - we don't currently have warning about saving a file
with a DSB in a format that doesn't support it, as we do with comments.

No longer export the RSA Session ID, only CLIENT_RANDOM related
information. This has been a long standing TODO.

Fix #18400
2023-06-15 04:16:29 +00:00
Gerald Combs cf1832ae14 Lua: Add a browser SSLKEYLOG launch script
Add a script that launches Chrome or Firefox with SSLKEYLOG set.
2023-06-13 17:26:49 +00:00
David Perry 194b578e82 Document use of pytest with external tests
It is straightforward to run Python-based tests which are outside the
Wireshark source tree.
2023-06-13 15:31:09 +00:00
Gerald Combs 591f89d785 Add a script to convert GLib types to their C equivalents
Convert wsutil/802_11-utils.[ch] as a test.

Update some of our documentation.

Ping #19116
2023-06-12 17:32:56 +00:00