Commit Graph

7055 Commits

Author SHA1 Message Date
Eugene Adell 4bdb4b1762 Follow Stream: Disable the Arrow button on 1st call
The first call to Follow Stream forgot to disable the arrow
button. Reverse the precedence between the display filter edition
and the display filter success now gives the expected GUI behavior.
Closes #10774
2021-10-26 04:02:14 +00:00
Gerald Combs 923ae6acca [Automatic update for 2021-10-24]
Update manuf, services enterprise numbers, translations, and other items.
2021-10-24 17:25:30 +00:00
João Valverde 0abe10e040 dfilter: Fix "!=" relation to be free of contradictions
Wireshark defines the relation of equality A == B as
A any_eq B <=> An == Bn for at least one An, Bn.
More accurately I think this is (formally) an equivalence
relation, not true equality.

Whichever definition for "==" we choose we must keep the
definition of "!=" as !(A == B), otherwise it will
lead to logical contradictions like (A == B) AND (A != B)
being true.

Fix the '!=' relation to match the definition of equality:
  A != B <=> !(A == B) <=> A all_ne B <=> An != Bn, for
every n.

This has been the recomended way to write "not equal" for a
long time in the documentation, even to the point where != was
deprecated, but it just wasn't implemented consistently in the
language, which has understandably been a persistent source
of confusion. Even a field that is normally well-behaved
with "!=" like "ip.src" or "ip.dst" will produce unexpected
results with encapsulations like IP-over-IP.

The opcode ALL_NE could have been implemented in the compiler
instead using NOT and ANY_EQ but I chose to implement it in
bytecode. It just seemed more elegant and efficient
but the difference was not very significant.

Keep around "~=" for any_ne relation, in case someone depends
on that, and because we don't have an operator for true equality:
  A strict_equal B <=> A all_eq B <=> !(A any_ne B).
If there is only one value then any_ne and all_ne are the same
comparison operation.

Implementing this change did not require fixing any tests so it
is unlikely the relation "~=" (any_ne) will be very useful.

Note that the behaviour of the '<' (less than) comparison relation
is a separate, more subtle issue. In the general case the definition
of '<' that is used is only a partial order.
2021-10-24 06:55:54 +00:00
Eugene Adell 9bedc8af1a Follow Stream: Minor update of a variable scope
To enhance the Merge 4644, the isReadRunning variable scope is
changed to reduce the header footprint and make the code compliant
to the usual coding rules.
2021-10-23 13:28:19 +00:00
Jirka Novak cf41fbd897 IAX2 Stream Analysis: Fix of mean jitter calculation
Calculation was using incorrect variable so calculation was incorrect.
Patch corrected this mistake.
2021-10-23 12:01:54 +00:00
Gerald Combs ca8e6f3db4 Qt: Add back some Q_OBJECT calls.
They're needed in some places for translations.
2021-10-22 16:47:38 -07:00
João Valverde 59c082c046 Add new global header wireshark.h with guideline
Remove ws_diag_control.h from config.h because that was a workaround
for the lack of a public global header. Fix the resultant build errors.
2021-10-22 06:41:44 +00:00
Eugene Adell 5863a7cbeb Ensure a single Follow Stream is running only
When changing one of the selection parameters in the Follow Stream
dialog while a filtering task is already running, the result is
inaccurate.
While a filtering task is already running in the Follow Stream
dialog, any filter change which triggers a new filtering gives a
wrong result. Both the displayed data and the Save As functions
are impacted. Closes #15637
2021-10-22 05:30:51 +00:00
Jirka Novak a747639add RTP Analysis: Fix of mean_jitter calculation
Calculation used current_diff in place current_jitter in mean_jitter
calculation so it produced incorrect results. This patch fixes it.

Closes #17600.
2021-10-20 07:05:30 +00:00
Gerald Combs 0e667117b4 [Automatic update for 2021-10-17]
Update manuf, services enterprise numbers, translations, and other items.
2021-10-17 09:30:23 +00:00
John Thacker cc91fd51ff cli: stats_tree: Make syntax consistent with other -z options
The statistics that use the stats_tree API parse the -z option
without expecting a comma separator between the statistics name
and the filter. This is contrary to both the man pages and how
all the other options work. Fix that so it's consistent.
Fix #17656
2021-10-15 04:22:23 +00:00
David Perry fd076e6ca8 Proposed rewording of filter tooltips
For #16186. Proposed changes to the tooltips which appear when a filter
expression is potentially problematic.

Rename references to "User's Guide" to "Help" since the link to the
User's Guide in the Help menu is just called *Contents*.

Name specific sections within the help which pertain to the warning
tooltip being shown. Gives first-time users some help in finding the
right part of the sizeable User's Guide.
2021-10-12 06:54:25 +00:00
Gerald Combs 11c58e78f7 Qt: More new-style signals+slot conversions. 2021-10-11 17:03:21 +00:00
Gerald Combs e5bcf6b402 Qt: Use new-style signals+slots in more places. 2021-10-11 16:32:49 +00:00
Chuck Craft 92ab6d0704 Rawshark: is not a CamelCase word 2021-10-11 08:03:31 +00:00
Gerald Combs ab34ebbc7b [Automatic update for 2021-10-10]
Update manuf, services enterprise numbers, translations, and other items.
2021-10-10 23:00:00 +00:00
Gerald Combs f9d3b9d51a Qt: Remove more Q_OBJECT macro calls. 2021-10-09 17:07:03 -07:00
Chuck Craft 48e740f8e4 text2pcap: typo on Help -> Manual Pages 2021-10-09 02:46:01 -05:00
Gerald Combs 991fc16e85 Qt: Remove Q_OBJECT in a few places where it's not needed.
Q_OBJECT is only needed for signals+slots, translations, and other
meta-object services. Remove it in some classes, since having it means
we're generating and compiling code unnecessarily.
2021-10-08 03:29:30 +00:00
Martin Mathieson af19fc795a Add NGAP Stats. 2021-10-06 09:26:42 +00:00
Stig Bjørlykke e724ab1b41 Qt: Handle fieldsChanged before prefs_apply_all
Improve reload Lua plugins to handle fieldsChanged before calling
the preferences apply callback, because a proto.prefs_changed()
function may call reload_packets() or redissect_packets(), and this
requires the fields to be updated.
2021-10-04 10:08:30 +02:00
Stig Bjørlykke e866034c55 Qt: Handle errors when reloading Lua FileHandler
Reloading the capture file after reloading a Lua FileHandler
may fail because of Lua errors. Handle this by closing the file.

Related to #17615
2021-10-04 07:15:11 +00:00
Gerald Combs 4bda9dfd3d [Automatic update for 2021-10-03]
Update manuf, services enterprise numbers, translations, and other items.
2021-10-03 10:51:10 +00:00
John Thacker ced4f00447 UI: Fix "Follow Stream" spin box for protocols without substreams
If the substream spin box is not visible, then we don't need to
go looking for a new substream value. Fix #17624
2021-10-01 22:32:24 -04:00
Stig Bjørlykke ec2746c910 capture: Check for valid wtap when capture.show_info
Changing profile during capture may change the capture_opts->show_info
setting. Always init cap_session->wtap and check if valid before doing
capture_info_new_packets(). Always close dialog and cap_session->wtap
in capture_input_closed().

This will not bring up the Capture Information dialog when switching
to a profile having this enabled.

Fixes #17622
2021-10-01 17:16:13 +00:00
João Valverde 5362d0c31b ws_getopt: Rename struct and macros
This is part of the API and should also be renamed to avoid conflicts.
2021-09-30 13:59:28 +00:00
Stig Bjørlykke 96cfaf67a3 Qt: Reload Lua FileHandler when having a capture file
Support reloading a Lua FileHandler when this is in use for a
loaded capture file. Prompt to save the file if having unsaved
changes because the file must be reloaded.

Fixes #17615
2021-09-30 11:07:08 +00:00
Martin Mathieson a156d7d05d Fix some spelling errors. 2021-09-28 09:50:58 +00:00
Gerald Combs d87e6e58fa [Automatic update for 2021-09-26]
Update manuf, services enterprise numbers, translations, and other items.
2021-09-26 15:19:23 +00:00
Nardi Ivan 151cfe5823 QUIC: disable "Follow TLS stream" for QUIC session
Close #17602
2021-09-26 14:40:42 +00:00
Roland Knall 7a283b0f36 Qt: Add heuristic description to dissector tables
Add the descriptive name for the heuristic dissector to the dissector
tables as well as move search bar to top

Fixes #17603
2021-09-26 10:36:44 +00:00
João Valverde f4c283298f Add compatibility fix for Minizip dependency 2021-09-23 14:19:02 +00:00
Stig Bjørlykke 533d859499 Qt: Register import_hexdump.json as a profile file
Profile files which is only used in Qt is not automatically registered
during startup and must be explicit registered.

Add profile_register_persconffile() to handle this registration.
2021-09-21 18:20:34 +00:00
João Valverde d09651e637 CMake: 'libui' depends on wiretap 2021-09-21 14:52:32 +00:00
João Valverde dfd241cef5 CMake: 'version_info' depends on wsutil 2021-09-21 14:52:32 +00:00
Developer Alexander 7866f43d82 IO Graph: Add checkbox to prevent automatic rescans
Adds a checkbox 'Automatic Update' to the IO Graph to enable or disable
rescans and recalculation of graph data temporarily. This is useful when
you want to modify settings of multiple graphs without triggering a rescan
with every change of a single setting. This becomes useful for large trace
files in particular.

Rescan or recalculation events are queued while 'Automatic Update' is not
active. Checking 'Automatic Update' triggers the queued updates.

The setting for 'Automatic Update' is stored in a preference.

A german translation for 'Automatic Update' is included.
2021-09-21 12:58:55 +00:00
João Valverde 3164d4a646 MinGW-w64: Use clock_gettime()
Mingw-w64 has this function. We may have to define some extra symbols
for API visibility but on my system the config check is working out
of the box.

POSIX systems come in many flavours, remove the "save time" if()
condition in this case.

Fix code to check if we have clock_gettime() on Windows as well.
2021-09-21 05:56:34 +00:00
João Valverde 5f79503d67 Fix config.h include order
The header "config.h" needs to be the first header included in the
source file, no exceptions.
2021-09-20 20:16:52 +01:00
Roland Knall 977c73d5b4 Qt: Pad time values for loading times
Pad the loading time values with leading zeros each
Fixes: #17601
2021-09-20 13:06:40 +02:00
João Valverde debd6bffae version info: Reduce locale display.
The locale information can be excessively verbose. Cut down the
number of categories displayed to one, arguably the most relevant
for troubleshooting purposes.
2021-09-19 17:13:29 +00:00
Gerald Combs 2cb684c92d [Automatic update for 2021-09-19]
Update manuf, services enterprise numbers, translations, and other items.
2021-09-19 16:52:44 +00:00
Stig Bjørlykke 36977acfbf Qt: Store Import Hex Dump settings
Store all user specified values from the "Import from Hex Dump"
dialog in a profile import_hexdump.json file.

Set default ExportPDU dissector to "data".
Fixed a minor typo in a help text.
2021-09-18 18:20:57 +00:00
João Valverde 8df2a73594 Use the musl in-tree getopt_long() everywhere
Besides the obvious limitation of being unavailable on Windows,
the standard is vague about getopt() and getopt_long() has many
non-portable pitfalls and buggy implementations, that increase
the maintainance cost a lot. Also the GNU libc code currently
in the tree is not suited for embedding and is unmaintainable.

Own maintainership for getopt_long() and use the musl implementation
everywhere. This way we don't need to worry if optreset is available,
or if the $OPERATING_SYSTEM version behaves in subtly different ways.

The API is under the Wireshark namespace to avoid conflicts with
system headers.

Side-note, the Mingw-w64 9.0 getopt_long() implementation is buggy
with opterr and known to crash. In my experience it's a headache to
use the embedded getopt implementation if the system provides one.
2021-09-17 00:43:54 +01:00
Roland Knall 19f3a82ff8 Qt: ByteView make hover configurable
Allow the hover selection to be either configured via context menu
or by pressing the Ctrl key while moving the mouse. The configuration
is stored via profile
2021-09-13 15:33:46 +00:00
Nardi Ivan 3cb302f05b HTTP2, QUIC: fix "Follow Stream"
"Follow Stream" functionality assumes that all data in a single packet
belongs to the same stream. That is not true for HTTP2 and QUIC, where
we end up having data from unrelated streams.

Filter out the unwanted data directly in the protocol dissector code with
a custom `tap_handler` (as TCP already does).

Close #16093
2021-09-13 15:13:10 +00:00
Joakim Karlsson a7a7849259 Qt: Enable Edit Name Resolution for EXPORTED_PDU 2021-09-13 14:22:16 +00:00
Darius Davis fe9123b541 Qt: Restructure related-packet indicator drawing.
The related-packet drawing code currently intermingles the selection and the
drawing of the conversation "trace" lines and the indicators.  Separating them
out -- so we make the decisions upfront and then do the drawing -- will help
with any future work in this area.
2021-09-13 20:59:52 +10:00
Gerald Combs 4fe297767b [Automatic update for 2021-09-12]
Update manuf, services enterprise numbers, translations, and other items.
2021-09-12 09:28:32 +00:00
Stig Bjørlykke 147aadea44 Qt: Add Decode as Hex Digits in Show Packet Bytes
Non-hex character in the data are skipped, enabling the decoding
to continue converting all hex digits found.
2021-09-11 14:41:15 +02:00
Guy Harris 76b08ea083 Fix spelling errors.
The Ubuntu build commented on some spelling errors in executable code
files.  Fix the errors that don't come from external files containing
the spelling errors (USB product and vendor IDs, PCI IDs, ASN.1
specifications), and fix some errors that don't show up in the
executable code files (e.g., in comments and variable names).
2021-09-11 10:01:27 +00:00