No need to register for the destroyed() signal: it is emitted after the new
QComboBox object is created and resetting pointers to NULL is useless as they
are locals initialized in the constructor
Bug: 11532
Change-Id: Ie707cafa370053df846a4732aed20c182e030c40
Reviewed-on: https://code.wireshark.org/review/10792
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Change-Id: I6298b3de5f0a1cb988014ff16082eaf8c2a3c3c0
Reviewed-on: https://code.wireshark.org/review/10786
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>
Change-Id: I28ae077be535f32ef81ac370d6782033f219017d
Reviewed-on: https://code.wireshark.org/review/10777
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: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
If a recent file is on a network share we'll create traffic which can
show up in the capture.
This doesn't fix the issue entirely, e.g. if you're capturing in one
instance of Wireshark and have another one open. The proper fix in that
case is to switch to QFileSystemWatcher as described at the top of
::WiresharkApplication.
Ping-Bug: 11546
Change-Id: If21f1bb213fe1d862c09b1b2edd78c8baf983461
Reviewed-on: https://code.wireshark.org/review/10774
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Fix invalid memory access when dragging the RTP player out of view when
a stream is selected. lowerBound() returns QMap.end() when no item is
found, use that instead.
Found using ASAN.
Change-Id: I5444a047bc242dfe481bd0581c5217030fca28f1
Reviewed-on: https://code.wireshark.org/review/10778
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Found by starting Wireshark within an empty profile, opening
Preferences, search for Protocol "IEEE 802.11" (because it has radio
buttons), then close everything again.
Many fixes are trivial, but the various recent_read_* functions in
recent.c were changed to return a boolean such that the result can
always be checked even if errno==0.
QButtonGroup leak was hinted by Clang Static Analyzer, all other
memleaks were found using ASAN/LSan.
Change-Id: Ia73f5d4c09d92f22e72377be59e23342f8ad7211
Reviewed-on: https://code.wireshark.org/review/10776
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: Alexis La Goutte <alexis.lagoutte@gmail.com>
Add more speex files to the distribution.
Comment out a for-now-unused variable.
Change-Id: Iea3a0fad81e2cb599209e1c30ecbdbdb153d1328
Reviewed-on: https://code.wireshark.org/review/10749
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Note the "initial". This is woefully incomplete. See the "to do" lists
below and in the code.
This differs a bit from the GTK+ version in that you specify one or more
streams to be decoded.
Instead of showing waveforms in individual widgets, add them all to a
single QCustomPlot. This conserves screen real estate and lets us more
easily take advantage of the QCP API. It also looks better IMHO.
Change a bunch of checks for QtMultimediaWidgets to QtMultimedia. We
probably won't use the widgets until we make 5.0 our minimum Qt
version and plain old QtMultimedia lets us support Qt 4 more easily
(in theory at least).
Add resampling code from libspeex. I initially used this to resample
each packet to match the preferred rate of our output device, but this
resulted in poorer audio quality than expected. Leave it in and use to
create visual samples for QCP and to match rates any time the rate
changes. The latter is currently untested.
Add some debugging macros.
Note that both the RTP player and RTP analysis dialogs decode audio data
using different code.
Note that voip_calls_packet and voip_calls_init_tap appear to be dead
code.
To do:
- Add silence frames where needed.
- Implement the jitter buffer.
- Implement the playback timing controls.
- Tapping / scanning streams might be too slow.
Change-Id: I20dd3b66d3df53c9b1f3501262dc01458849f6b4
Bug: 9007
Reviewed-on: https://code.wireshark.org/review/10458
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
The data that describes RTP streams become invalid when packets are
re-dissected. This results in a crash in GTK when the "RTP Analyse"
option is used and and a crash in Qt when the display filter is changed
while the RTP Streams dialog is open.
Fix this by adding a tap_reset callback (modelled after mcaststream) to
the RTP tap listener that allows the GTK+ and Qt dialogs to clear the
displayed list of RTP streams.
Bug: 10016
Change-Id: I7478678db63d7ac8110c44c163844e9f66fad9e9
Reviewed-on: https://code.wireshark.org/review/10728
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>
Qt is affected by a similar issue, a different approach is needed.
This reverts commit 01bd832b9d.
Change-Id: Ic03807e8d00a3114bac1507762df05870b0346d9
Reviewed-on: https://code.wireshark.org/review/10727
Reviewed-by: Michael Mann <mmann78@netscape.net>
The GTK+ version dumps "new" and "old" hash values. It looks like
neither are valid since the code in conversation.c and
conversation_hashtables_dlg.c have diverged.
For now just dump the addresses and ports for each hash table in the Qt
UI.
Change-Id: I832522dff06da769bd4ad3ead3d541206f283a90
Reviewed-on: https://code.wireshark.org/review/10713
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
I was confused when double-clicking a packet number did not work. It
turns out that the display filter was hiding the destination.
Check the packet number for sanity, just like GTK+ does.
Change-Id: If50b2a3091a468f880b42fd2385f1b74c30d2f2b
Reviewed-on: https://code.wireshark.org/review/10700
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
When updating the RTP streams list, the data associated with the current
selection becomes invalid when the old list is cleared.
gtk_list_store_clear somehow triggers the selection callback which
attempts to access the invalid memory.
Avoid this by disabling selectability while clearing the list.
Bug: 10016
Change-Id: Id5126ec5ffa41fa6a65339f4453546223124ed67
Reviewed-on: https://code.wireshark.org/review/10690
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
I am tired to go menu to refresh interfaces.
Shortcut make our live easier.
Change-Id: Ic2a478d7857b8138897088f0a6610df7988b1be9
Reviewed-on: https://code.wireshark.org/review/10520
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Also fix usage of 'Decode As' window when no file is opened (broken by gf189cb8)
Change-Id: I06ff83394cf31763cecfbbedd99ce7438488872a
Reviewed-on: https://code.wireshark.org/review/10665
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
There is only one meaning for the flags parameter, namely axis
orientation (x or y). Replace the bitmap by a bool instead.
Clang 3.7.0 reported this warning:
ui/gtk/tcp_graph.c:1652:29: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
g->y_axis->flags &= ~AXIS_ORIENTATION;
~^~~~~~~~~~~~~~~~
ui/gtk/tcp_graph.c:140:28: note: expanded from macro 'AXIS_ORIENTATION'
#define AXIS_ORIENTATION 1 << 0
^
1 warning generated.
This (~1 << 0) happened to work because nothing is actually shifted.
Change-Id: I406235148b7826649d35647f5d0702cd72a925a5
Reviewed-on: https://code.wireshark.org/review/10658
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: Martin Mathieson <martin.r.mathieson@googlemail.com>
Add the "Internals" menu under the View menu instead of at the top level
for now at least. Add the Dissector Tables dialog there.
Change-Id: Ieb23b0015591bac196e4ef94e3443832288333f9
Reviewed-on: https://code.wireshark.org/review/10654
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Fix some (mostly spurious) checkapi warnings by renaming the
offending variables.
Change-Id: I7a43ac89f5ed35053a6526fa838fbad67669a49a
Reviewed-on: https://code.wireshark.org/review/10655
Petri-Dish: Graham Bloice <graham.bloice@trihedral.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
Change-Id: I686eadc865ae38433c3795450aeca8582a74d2c8
Reviewed-on: https://code.wireshark.org/review/10535
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Some menu items always need to be enabled or disabled when we call
setMenusForSelectedTreeRow. Do so.
Add some NULL checks.
Change-Id: I5de3df2ceb1dfe19e1cea548b0299004fbea2ec7
Reviewed-on: https://code.wireshark.org/review/10651
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Make it clear that the shortcuts are for the main window. Add and update
a few tooltips.
Change-Id: I9ee082a9ede95f4b727fb652437f9ed16c9ef2bf
Reviewed-on: https://code.wireshark.org/review/10650
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Change-Id: I966d839c755090679bb3fc79d2ba36645e561c19
Reviewed-on: https://code.wireshark.org/review/10633
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
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>
Add a "Keyboard Shortcuts" tab to the about box for lack of a better
place. Show every action in the main window which has an associated
shortcut except for recent items.
We might want to add a command-line option to dump the shortcuts in
addition to or instead of showing them here.
Change-Id: I875043048a44930391fefcbbaf17c5b10a7bb8c6
Reviewed-on: https://code.wireshark.org/review/10634
Reviewed-by: Gerald Combs <gerald@wireshark.org>
In tests here using GTK+ 2.24 and 3.10, GtkTreeView handles multi-line
items by adjusting the height for all rows, but only after the number of
multi-line items exceeds some sort of threshold. For a packet capture
which contains a few DNS packets and a lot of TCP packets, if I change
"Standard query" to "Standard\nquery" in packet-dns.c I get
single-height packet list items. If I change "[TCP segment of a
reassembled PDU]" to "[TCP segment of a\nreassembled PDU]" in
packet-tcp.c (which results in more multi-line column strings) I get
double-height packet list items.
The current Qt code initially sets the uniformRowHeights property then
falls back to variable row heights if we run across a multi-line column
string. This adds a lot of logic which can impact other functionality
(e.g. column widths) and recalculating row heights is painfully slow for
large numbers of packets.
Instead of trying to manage variable row heights, always enable
uniformRowHeights. Track the maximum newline count and trigger a row
height adjustment when it changes. This mimics the GTK+ UI behavior,
although it should be more reliable.
Note that we need to adjust some numbers in RelatedPacketDelegate.
Change-Id: I289e963b6f00338c4374e602fa3fc83d04554519
Ping-Bug: 11515
Ping-Bug: 10924
Reviewed-on: https://code.wireshark.org/review/10628
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Use Qt's standard pixmaps to build our media playback, stop, and pause
icons. Note that we probably don't want to do this for all of the
available standard pixmaps.
Change-Id: I78541a46a65583d7365cd601c578ebe8f197c060
Reviewed-on: https://code.wireshark.org/review/10609
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Add a check to PercentBarDelegate to see if the caller set text for this
item or did not set a valid double value. If either case is true, just
draw the item normally and return.
Change-Id: I028ee15d54f06f2cb16c6e5f1ef73c47b2886ccd
Reviewed-on: https://code.wireshark.org/review/10600
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Features such as sorting and scroll bar colorization require
fully-dissected packets. We currently do dissection at the wrong time --
*after* the user clicks on a packet list column header or moves the
scrollbar.
Add a timer + slot that dissects packets when the UI is idle so that our
packets are at least partially dissected when we need them.
Change-Id: I024c590af2250d67404a520f118e46ec0c49cd71
Reviewed-on: https://code.wireshark.org/review/10593
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add the ability to identify an instance of the dissector table to be modified by 'Decode As' thanks to pinfo->curr_layer_num
For now only IPv6 makes use of it but it could be extended to any other protocol
Also get rid of ipv6.nxt protocol: it is not required for 'Decode As' functionality and was colliding with ipv6.nxt field
Change-Id: I3c7403c77328ad7170e13af028d178f962a2b508
Reviewed-on: https://code.wireshark.org/review/10552
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
It makes more sense (not trying to decode UDP/TCP ports as HTTP) and is consistent across dissectors tables (while currently we have an empty field for tables other than UDP/TCP)
Change-Id: I794529f0f46b4197437a1d258f808991ae2338ad
Reviewed-on: https://code.wireshark.org/review/10571
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Connect itemSelectionChanged to header label updates instead of
currentItemChanged, which seems to be more reliable.
Change-Id: I29f8f2144ad6584e0612d43ec3aac5b258f08ebd
Reviewed-on: https://code.wireshark.org/review/10570
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
The GTK+ update_progress_dlg() initially forces a UI update. Do so in
the Qt version as well.
Change-Id: I05d9e61a0d0e4e05af448039bbb81785ac00908c
Reviewed-on: https://code.wireshark.org/review/10568
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Otherwise you end up with a 'End of capture exceeded' popup when calling rescan_packets() with only a few packets in the capture
Change-Id: Idb387ce95f1d22b934e735c350ea0c117763d89a
Reviewed-on: https://code.wireshark.org/review/10567
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
At least on Linux/X11 with Qt5 this appears to be necessary so the progress
bar updates more than once every 2 seconds or so (when loading a large file).
Change-Id: I7eea9c0d97d24bc14ad75f082a3531dcf1a3b6ae
Reviewed-on: https://code.wireshark.org/review/10559
Reviewed-by: Gerald Combs <gerald@wireshark.org>
When updating the progress dialog (which happens each time we read a
packet) the GTK+ UI processes application events every 100ms. Do the
same in the Qt UI.
Ping-Bug: 11515
Change-Id: Ic53eade05c0b82bf436c08618f28506c5fcdbc94
Reviewed-on: https://code.wireshark.org/review/10554
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
beginInsertRows + endInsertRows is expensive. Instead of calling them
each time we add a packet to the list, queue up a list of visible packets
and flush it during the next UI update.
Assume that none of our column data has newlines. Enable
uniformRowHeights and only disable it when we need to. Note that this
requires further work.
Ping-Bug: 11515
Ping-Bug: 10924
Change-Id: Ifbdd2964b174247a4745d4889ebda5bf3b886ba4
Reviewed-on: https://code.wireshark.org/review/10553
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
A few calls in the epan directory and comments in the ui directory
Change-Id: Ia8f8830ac6909ab94d3a03283bfd173456bc9718
Reviewed-on: https://code.wireshark.org/review/10492
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Also save the new value in preferences
Change-Id: Ie1a942669ebc2824c999621ecd948425b3b49574
Reviewed-on: https://code.wireshark.org/review/10500
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Limit PacketListModel::recreateVisibleRows to checking for packets that
passed the display filter. Remove the call to resetColumns, which
invalidates the column string cache.
Call PacketListModel::resetColumns from PacketList::columnsChanged.
Along with invalidating the column string cache, this triggers a widget
update which means we shouldn't need to call recreateVisibleRows or
redrawVisiblePackets. Remove them.
Change-Id: Ic25f139e2c2f8cdebb2a868ccda7eb4127a3013c
Ping-Bug: 11324
Ping-Bug: 11514
Reviewed-on: https://code.wireshark.org/review/10491
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Ethernet addresses are only 6 bytes in size, reading it as a 64-bit
integer is invalid. Use unsigned 8-bit integers instead.
Caught by UBSAN and Address Sanitizer. Trigger via the Statistics menu
Resolved Addresses (Qt) or Show address resolution (GTK).
Change-Id: I628ff7cce0ea4f4e378c7968cd79a0ae34cdd20b
Reviewed-on: https://code.wireshark.org/review/10443
Reviewed-by: ronnie sahlberg <ronniesahlberg@gmail.com>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Evan Huus <eapache@gmail.com>
This saves a fair amount of memory in tests here. Loading a large
capture file and sorting on a custom column (tcp.window_size) uses 676
MB before the change and 634 after.
Add notes about possble further improvements:
Roll our own replacement for GStringChunks using wmem_tree.
Have PacketListRecord::columnString return a const char * instead of a
const QByteArray.
Change-Id: Icb36194f5ad290828d7106ccc3bf494d07d76d08
Reviewed-on: https://code.wireshark.org/review/10476
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This fixes a serious (and obvious) memory leak in the packet list.
Change-Id: Ie3d21e1a1d09a3481c9649954c25b9ae73b8e32a
Reviewed-on: https://code.wireshark.org/review/10485
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Make sure we set and unset the "process_filtered" field of our range in
PacketRangeGroupBox. Otherwise we only export displayed packets. Make
sure we set "remove_ignored" as well.
Ignore the cf_cb_file_export_specified_packets_* callbacks in
CaptureFile so that we don't print spurious warnings.
Bug: 11473
Bug: 11428
Change-Id: Ica551addd3af2de79f7cd47a2cc361043d2982e5
Reviewed-on: https://code.wireshark.org/review/10477
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
A recent set of changes replaced the "dfilter_erase_" images with an
"x-filter-clear" stock icon set.
Move StockIconToolButton to its own compilation unit. Use it in
CaptureFilterEdit and ProgressFrame to load the "x-filter-clear" icon.
Bug: 11516
Change-Id: I5d5864d089fb56827d130d493d53e7de6a7c03b5
Reviewed-on: https://code.wireshark.org/review/10475
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
When the capture process has not yet received any packets (not even the
libpcap header), Wireshark-Qt would crash because no valid capture file
was found. Reproducer:
ssh otherhost sleep 10000 | wireshark -k -i -
GTK displays "Waiting for capture input data" in the status bar until
the capture file format is determined. After this patch, both versions
will just display an "Interrupted system call" message.
Change-Id: I146f00c0f4fcab04cddcd4f29b56e97b807a9c40
Reviewed-on: https://code.wireshark.org/review/10388
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: ronnie sahlberg <ronniesahlberg@gmail.com>
As pointed out by checkAPI.pl.
Change-Id: Ibab9b2720f3ef666b06b2b61ffc54aa23cbb01fc
Reviewed-on: https://code.wireshark.org/review/10469
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
On many systems, Qt5 requires that code compiled against it must compile
with -fPIC. The preferred place to determine whether this is necessary
is at configure time. This change adds the auto-tool code to make that
happen and removes the hack put in place as an interim solution.
Bug: 11230
Change-Id: I6e583c67bb67d168a30c0af05a8cd0a070522ba0
Reviewed-on: https://code.wireshark.org/review/10281
Petri-Dish: Jeff Morriss <jeff.morriss.ws@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
Copied from the RTP Analysis dialog, just like the GTK+ version.
Change-Id: I111020bc4073a3a3ba583bdace51a91ee5fef300
Reviewed-on: https://code.wireshark.org/review/10447
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
- Move the apply-filter code to main_menubar,
because there already the code of the preference
pop-ups is handled
- Fix the apply-filter callback, which was not working
at all
Change-Id: I25d5a161d8b78695c15b3100653be36786129408
Reviewed-on: https://code.wireshark.org/review/10444
Reviewed-by: Roland Knall <rknall@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
The developer may provide a given menu as parent menu for the
sub menu. If the menu does not exist, the main menu will be used.
Has been implemented for Qt as well as GTK.
Change-Id: I3f26684862fd0b08f59eeb4d6f4a24ce7dc3d428
Reviewed-on: https://code.wireshark.org/review/9939
Reviewed-by: Roland Knall <rknall@gmail.com>
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>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Found by coverity CID 1314608 and Apple Instruments.
Change-Id: I264ce335bd8985946a097bb8f99f7c41c0eb027d
Reviewed-on: https://code.wireshark.org/review/10378
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Avoid passing a reference to a allocated QString, which will
never be deleted.
This fixes a 16 Bytes leak each time an element is selected or
deselected in the packet tree.
Change-Id: If0d7482bf505fda8802dd58e8d1841b7da6b6294
Reviewed-on: https://code.wireshark.org/review/10393
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Add an event handler which ensures that the tooltip displays only when
we're over the arrow subcontrol.
Change-Id: I14d308344d9dd4d4ffbc7b0fe568c95f21f9a641
Reviewed-on: https://code.wireshark.org/review/10417
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
It should be fixed in Qt 5.5.1.
Change-Id: I32fa11accdd6bea953341dd6b4914686cacda98e
Reviewed-on: https://code.wireshark.org/review/10419
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Comment out the setToolTip call in DisplayFilterCombo. The function
applies to the entire control, but the text only makes sense for the
drop-down arrow.
Remove the tooltip for the clear button in DisplayFilterEdit. If the
purpose of the "X" symbol isn't obvious then we aren't doing our job
properly.
Comment out the other setToolTip calls in DisplayFilterEdit for now
since they interfere with leaveEvents. Add a note about a possible
workaround.
Change-Id: I055a30b6a5b5e07cebf1fa36e217654d390d34d0
Reviewed-on: https://code.wireshark.org/review/10405
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Have the bookmark button operate on saved display filters, similar to
the "Filter:" button in the GTK+ UI. Expose the saved display filter
list via a popup menu.
Update the display filter icons. Make the "Apply" button wider. Remove
the old icon assets.
Add a StockIconToolButton class along with note explaining why it's
necessary.
Rename the "Filter Bookmarks" preference to "Filter Shortcuts".
Suggestion for a better name are welcome.
Change-Id: I0082d3f01b017253fa75e51cbff9beb17c41a209
Reviewed-on: https://code.wireshark.org/review/10390
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
While we are at it:
- fix a crash when clicking on the cancel button from the preference modification context menu
- redissect the packet list when modifying a preference from the context menu
Bug: 11502
Change-Id: I7269f7093f1f38c46ec7744fd619ab67f31eb4e7
Reviewed-on: https://code.wireshark.org/review/10386
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
To be able to close all open dialogs (emit a close signal) from a C function
this change introduces a FunnelStringDialogHelper class to handle this.
Change-Id: Id50e949e5e2b56401ce9228f8fa9ba17dddbd7fb
Reviewed-on: https://code.wireshark.org/review/10372
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
use #if 0 /#endif for disable code
Found by Clang 3.7
Change-Id: Ie1b6b0936df0ae422baa9b3bb9692f136eb177b1
Reviewed-on: https://code.wireshark.org/review/10380
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: Anders Broman <a.broman58@gmail.com>
Rename ui/gtk/iax2_analysis.h to ui/tap-iax2-analysis.h. Move
iax2_packet_analyse to ui/tap-iax2-analysis.c.
Rename rtp_analysis.h to tap-rtp-analysis.h to match IAX2.
Change-Id: Ice7e9ad0d7bf62d631850089c880ec09a3e101dd
Reviewed-on: https://code.wireshark.org/review/10375
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Call g_string_chunk_clear when we clear the packet list. Allocate 1 MiB
chunks instead of 32 byte chunks. This doesn't do much in practice locally
but appears more correct according to the GStringChunk documentation
and source code.
Change-Id: I143b6e1b48d376ba826cb342ade71085a2d82d96
Reviewed-on: https://code.wireshark.org/review/10344
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
The IAX2 dissector stopped setting pinfo->circuit_id last October in
g3d359da. Remove the corresponding check from the IAX2 Analysis dialog,
otherwise it won't open.
Change-Id: I538fffb2ec9950c796d01e64db5890f4e9d22b64
Reviewed-on: https://code.wireshark.org/review/10373
Reviewed-by: Gerald Combs <gerald@wireshark.org>
It's _WIN32, with a leading underscore, not WIN32. See, for example:
https://sourceforge.net/p/predef/wiki/OperatingSystems/
and
https://msdn.microsoft.com/en-us/library/b0084kay.aspx
*Some* environments may also define WIN32, but we shouldn't depend on
that.
Replace all-caps "WIN32" referring to Windows in comments and other text
with "Windows" or "Win32". (The two are pretty much equivalent, these
days; nobody much cares about Win16, not that we ever ran on it, and
64-bit Windows is just a 64-bitified Win32.)
Change-Id: Id327bcd4b1e9baa4f27055eff08c2d9e594d6f70
Reviewed-on: https://code.wireshark.org/review/10367
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Make sure the packet list is directly after the display filter edit in
the main window tab order. When we press enter in the display filter
edit, go to the next child in the tab order.
Change-Id: If46e178365dbd59feb5985e9f8fa8b55d004d864
Reviewed-on: https://code.wireshark.org/review/10342
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Convert both the MTP3 statistics and summary. As with the GSM stats this
is mostly untested.
Change-Id: I7af8d5f21c8161dc95f7f2c710f32364b6f6a431
Reviewed-on: https://code.wireshark.org/review/10338
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
The close callback was never called because the destructor was never called.
Change-Id: I9f6204858bc5d5e48d0aedc90b0e242ab70e161c
Reviewed-on: https://code.wireshark.org/review/10321
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
As with g3bec655, we need to call columnsChanged (which invalidates
cached column strings) whenever any settings that generate those strings
change. Do so for the time display preferences in the View menu.
Bug: 11429
Change-Id: I71bf1cc0df2800902ecb7b734b8f12ebd85a4de5
Reviewed-on: https://code.wireshark.org/review/10331
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add the current SCTP actions to the telephony menu to match the GTK+ UI.
Change-Id: Ie7471bcbd1a82fe3f203d60f5ea8a72d923f34b9
Reviewed-on: https://code.wireshark.org/review/10332
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Call columnsChanged (which invalidates cached column strings) when we
change our name resolution preferences from the View menu.
Remove the last sorted column tracking from gf19a173 while we're here
(it didn't work properly).
Bug: 11468
Change-Id: I7fea58d702b283028235d023f27ab0336d8643a4
Reviewed-on: https://code.wireshark.org/review/10301
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
In CapturePreferencesFrame::updateWidgets() save and restore the default
capture device name because the first call (and only the first call) in
the loop with addItem() triggers on_defaultInterfaceComboBox_editTextChanged()
which unconditionally sets the default name as the first non-hidden device.
Bug: 10965
Change-Id: Ie93f84010a19e8144efa46ce889fb9064979e0e9
Reviewed-on: https://code.wireshark.org/review/9584
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Hadriel Kaplan <hadrielk@yahoo.com>
Our event loop is nested when we read packets. Disable the main window's
central widget while we're retapping packets in order to minimize the
chance of ending up in an unexpected state while analyzing packets.
Note that we will probably want to disable more of the main window and
do so in other parts of the code.
Change-Id: I68a00fe43d2ac9e7c0749751abd1c10c47155b3b
Reviewed-on: https://code.wireshark.org/review/10293
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
When the user applies a display filter in TapParameterDialog we're about
to start tapping. We need to set the display filter in the main window
but we shouldn't apply it.
Change-Id: I08bed5c7f470f1dbf32817a7d999f09d2c52f168
Reviewed-on: https://code.wireshark.org/review/10287
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Do not retrieve type and code base on the info column content.
Instead store type and code in pinfo structure and retrieve them in sequence analysis tap.
Change-Id: I71cd505d7faf713c2372731495d47b45928a41f8
Reviewed-on: https://code.wireshark.org/review/10280
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Pascal Artho <pascalartho@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
The GTK+ UI sequentially dissects and caches column strings for all rows
before sorting a column. Do the same in the Qt UI, which can improve
performance considerably.
Don't colorize packets when sorting in the Qt UI unless it's necessary.
When sorting in the Qt UI, let the user cancel the initial packet
dissection. Note that we'll need to replace std::sort in order to
cancel out of sorting.
Use a pre-allocated and pre-compiled GRexex when we prime columns. Note
that we probably shouldn't parse a regular expression there.
Cache the last result of proto_registrar_get_byname.
Note performance hot spots elsewhere in the code.
To do:
GeoIP in packet-ip.c is pretty slow.
Bug: 11467
Change-Id: Ib34038fee08ef0319261faeffc4eca01e52f4bd3
Reviewed-on: https://code.wireshark.org/review/10275
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Disable the main file close and reload actions while we're retapping,
otherwise many of our dialogs will crash.
Disable the TapParameterDialog filter entry while we're retapping. This
keeps us from enabling the "Apply" button when we shouldn't.
Don't prematurely disconnect our signals in WiresharkDialog.
Change-Id: Iaf507eb4503b9c296766f109f2b8c71343263982
Reviewed-on: https://code.wireshark.org/review/10274
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Emitting PacketDissectionChanged from a dialog on can render the main
window unusable on OS X. A workaround for this was added to the
preferences dialog in g8fc2327. Generalize the workaround and use it
elsewhere.
Fix the "Enabled Protocols" action name while we're here.
Bug: 11361
Bug: 11448
Change-Id: I89e98daaaedc877d3b13b0d33b6f3be033e323d7
Reviewed-on: https://code.wireshark.org/review/10271
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add cf_cb_file_retap_started and cf_cb_file_retap_finished to file.[ch].
Add their associated signals to CaptureFile.
Add registerTapListener and removeTapListeners to WiresharkDialog, which
collect and automatically remove tap listeners. Add beginRetapPackets
and endRetapPackets, which can be used to wrap critical sections so that
we don't delete ourselves while tapping. Don't cancel tapping on close
in WiresharkDialog.
Use beginRetapPackets and endRetapPackets in WiresharkDialog and
FollowStreamDialog. We will likely need to add them elsewhere.
Update comments.
Change-Id: I1788a6ade0817c31aa3419216df96be5e36b2178
Reviewed-on: https://code.wireshark.org/review/10261
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Add ProgressFame::addToButtonBox, which violates the UX guidelines on
every platform we support by inserting a ProgressFrame into a
QDialogButtonBox.
Call addToButtonBox in the constructors of a bunch of dialogs.
Change-Id: I33ac5fd7a976ee6e0527de569a5c4b528980dae1
Reviewed-on: https://code.wireshark.org/review/10242
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Use hardcoded values instead of enum values so as to avoid any dependency on newest Microsoft SDK.
Add WinPcap specific NdisMediumXXX values.
Also rename "Medium in use" to "Media in use" to better match the OID query name.
Change-Id: I7ccc2763364b65df77927cbf1c265195fc295642
Reviewed-on: https://code.wireshark.org/review/10225
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Yang Luo <hsluoyz@sohu.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
We could keep the dialogs with the current content if postponing
proto_free_deregistered_fields() until all dialogs are closed.
This would give a feature where the user is able to compare packets
before and after a reload.
Or we could add functions in PacketDialog to reload the packet details
in all open dialogs. This would give a feature to always have a
updated dialog for all interesting packets.
Change-Id: I805352b65844eafafafc54cd61f08b4605416e64
Reviewed-on: https://code.wireshark.org/review/10201
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
When changing stream in TCPStreamDialog it should not be possible
to change stream again until the capture has reloaded, because
this will give a crash when doing graph_segment_list_free() or
graph_segment_list_get() while already doing this.
Also disable mouseMove event (showing packet details) while reloading,
as this also will give a crash.
We should consider also having a reload progress bar in the
TCPStreamDialog to indicate that this is happening when having
large capture files, as the main window may not be visible.
Change-Id: I622f9e0de8205bc1fd18101dc03100079d7a2d06
Reviewed-on: https://code.wireshark.org/review/10159
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Pressing multiple apply while reloading the capture file will
give a crash.
Change-Id: I3587b9ab6b6b7f1437f3a7becb8c35277bb5c62c
Reviewed-on: https://code.wireshark.org/review/10161
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Optional filter argument wasn't correctly parsed.
Change-Id: Ic0418fa866e1a00880b4e41bb28267a155a71aa5
Reviewed-on: https://code.wireshark.org/review/10088
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Selecting a row in the statistics table causes a Glib assertion failure.
GLib:ERROR:ghash.c:373:g_hash_table_lookup_node: assertion failed: (hash_table->ref_count > 0)
When the comparestat_draw() function is called, the cs->ip_id_set hash table
is created and then immediately destroyed, but the hash table lookup
to cs->ip_id_set in new_tree_view_selection_changed() can happen anytime
the user clicks on a table row.
Bug: 11098
Change-Id: I6c7a39c947ca11327c3fc3ab0d4caa735798d142
Reviewed-on: https://code.wireshark.org/review/10096
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Change-Id: Ia731f281ee9af171c759d7f6f7c614c350cbb4e7
Reviewed-on: https://code.wireshark.org/review/10178
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: Stig Bjørlykke <stig@bjorlykke.org>