The attached patch makes the Statistics -> RTP -> Show All Streams feature of
wireshark accessible via tshark.
I found it helpful in dealing with tons of RTP captures.
svn path=/trunk/; revision=24252
est. Use g_ascii_strcasecmp() and g_ascii_strncasecmp(), and supply our
own versions if they're missing from GLib (as is the case with GLib
1.x).
In the code to build the list of named fields for Diameter, don't use
g_strdown(); do our own g_ascii_-style upper-case to lower-case mapping
in the hash function and use g_ascii_strcasecmp() in the compare
function.
We do this because there is no guarantee that toupper(), tolower(), and
functions that use them will, for example, map between "I" and "i" in
all locales; in Turkish locales, for example, there are, in both
upper case and lower case, versions of "i" with and without a dot, and
the upper-case version of "i" is "I"-with-a-dot and the lower-case
version of "I" is "i"-without-a-dot. This causes strings that should
match not to match.
This finishes fixing bug 2010 - an earlier checkin prevented the crash
(as there are other ways to produce the same crash, e.g. a bogus
dictionary.xml file), but didn't fix the case-insensitive string matching.
svn path=/trunk/; revision=23623
RTP analysis' jitter values are thrown off by RTP events
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1076
a) Ephemeral string (packet duration) was inserted into long-term hash of
dynamic payloads
b) There was no clock_rate mapping for MIME type "telephone-event".
svn path=/trunk/; revision=22780
find attached several trivial diffs for viewing RTP SSRC values in Hex
rather than Dec at various places in the UI.
Also includes change from BASE_DEC to BASE_HEX_DEC for corresponding RTP
and RTCP dissector header fields.
svn path=/trunk/; revision=22017
Fix compilation failures when building wireshark-0.99.6-SVN-21916 on an
x86_64-unknown-linux-gnu target with gcc version 4.1.2 20070403 (Red Hat
4.1.2-8).
The failures fall into two categories:
(1) Casts between pointers and 32-bit integers without an intermediary cast
via 'long' or 'unsigned long'. This results in a compiler warning complaining
about casts between a pointer and an integer of a different size.
(2) Passing values to "%lld" or similar printf-style format options that the
compiler thinks are a different size. Such values need to be cast to 'long
long' or 'unsigned long long'.
svn path=/trunk/; revision=21975
wrong timestamp. Place a cap on the amount of silence that we do
insert. This should fix bug 1580.
Update the release notes.
svn path=/trunk/; revision=21818
32-bit numbers. Separate signed and unsigned accessors have been
added and used where appropriate.
Definitely not for 0.99.5.
svn path=/trunk/; revision=20472
Below is a patch for a bug in rtp_analysis.c. The variable
statinfo->delta_timestamp was not initialized in all the
necessary cases. The function rtp_packet_save_payload uses this
variable and the for loop on line 935 could use an old value
and run an incorrect amount of times, e.g. a couple billion,
which gets ethereal stuck. I can supply an example capture
which causes it. The patch solves the problem.
svn path=/trunk/; revision=18798
button"; "Stop" should be used for operations that can only be stopped
(meaning that what it's already done isn't undone), not cancelled
(meaning that whatever it's already done *is* undone), for which
"Cancel" is used.
Allow the merging process to be cancelled.
Clean up indentation.
Update some comments.
svn path=/trunk/; revision=16489
to do this, I've added file_util.h to wiretap (would file_compat.h be a better name?), and provide compat_macros like eth_open() instead of open(). While at it, move other file related things there, like #include <io.h>, definition of O_BINARY and alike, so it's all in one place.
deleted related things from config.h.win32
As of these massive changes, I'm almost certain that this will break the Unix build. I'll keep an eye on the buildbot so hopefully everything is working again soon.
svn path=/trunk/; revision=16403
directory to the epan directory. Some of them should perhaps ultimately
be moved to epan/dissectors, if they pertain only to stuff exported by a
particular dissector.
Fix Gerald's e-mail address in files we're moving.
svn path=/trunk/; revision=15844
generate columns; use cf_retap_packets instead of cf_redissect_packets()
when running taps (the general flow graph stat uses the Info column).
svn path=/trunk/; revision=15793
Patch which will enable saving payload in raw (binary) format in addition to the existing au format.
We have found it very useful to be able to extract the RTP data for use with other tools (especially when dealing with proprietary/uncommon coders).
Changes:
rtp_packet_save_payload: no longer transforms packet to linear coding, payload is saved in raw format
copy_file: will perform the needed transcoding and save to needed format (au or raw)
svn path=/trunk/; revision=15648
I've done more than a day to change the timestamp resolution from microseconds to nanoseconds. As I really don't want to loose those changes, I'm going to check in the changes I've done so far. Hopefully someone else will give me a helping hand with the things left ...
What's done: I've changed the timestamp resolution from usec to nsec in almost any place in the sources. I've changed parts of the implementation in nstime.s/.h and a lot of places elsewhere.
As I don't understand the editcap source (well, I'm maybe just too tired right now), hopefully someone else might be able to fix this soon.
Doing all those changes, we get native nanosecond timestamp resolution in Ethereal. After fixing all the remaining issues, I'll take a look how to display this in a convenient way...
As I've also changed the wiretap timestamp resolution from usec to nsec we might want to change the wiretap version number...
svn path=/trunk/; revision=15520
filter as an argument on the command line and have a dialog box to enter
the display filter through the GUI. Use it for all stats using
"gtk_tap_dfilter_dlg_cb()".
Add a top-level "stat_menu.h" file to declare "REGISTER_STAT_GROUP_E"
for the benefit of the declaration of "register_dfilter_stat()" in the
top-level "tap_dfilter_dlg.h". Rename the "stat_menu.h" in the gtk
directory to "gtk_stat_menu.h", so as not to have two headers with the
same name.
Get rid of headers not declaring any functions not being used in the
module.
svn path=/trunk/; revision=15493
- Add plugins_dlg.h
- Include .h files in their respective .c files
- Include .h and remove extern declarations in .c files
- set eol-style and keywords on gui_utils.[hc]
svn path=/trunk/; revision=15471
and "Statistics" menu items into "stat.h" and "stat.c", to separate them
from the core tapping APIs. A tap could conceivably not register as a
"-z" command-line argument or "Statistics" menu item, and a stat could
conceivably not be implemented as a tap, and dissectors that implement
tapping points don't need the UI-related stuff from "stat.h", they just
want the tap-related stuff in <epan/tap.h>.
svn path=/trunk/; revision=15427
This might at some places interfere with the changes for gcc4, we might have to negotiate in that case :-)
Please note that a lot of these warnings were GTK1.x related only!
svn path=/trunk/; revision=15286
_U_-ify some unused arguments, rather than assigning them to themselves.
Un-constify one variable that gets assigned a mallocated pointer.
Clean up indentation.
svn path=/trunk/; revision=15236
If you have an RTP stream in which the first packet is duplicated, and has the marker bit set, then the RTP stream analysis will try to pad silence into a temporary file from 0 upto whatever the RTP timestamp is (which is enough to fill up my disk...). The patch fixes this misbehaviour.
svn path=/trunk/; revision=14850
Other nodes will never be created by the tree (sort of auto pruning of the tree).
While this greatly spped up the processing performance of ethereal, it makes it "dangerous" for apps that try to walk the tree directly.
rtp_analysis did not specify the fields "rtp.version" nor " rtp.ssrc" when dissecting the current packet and as such these fields were no longer part of the tree.
This surprised rtp_analysis and a coredump resulted.
This change will add the field that we walkt the tree to find to the filter string so that they will be there.
svn path=/trunk/; revision=14200
add two toolbar toggle buttons
add icons to various menu items
create new Statistics telephony group and put telephony and alike protocols in it
svn path=/trunk/; revision=14098
optimization for COLUMNS to make ethereal faster when filtering
optimization to make the slow find_protocol_by_id() fast.
(idea from Didier, implementation modified by me to be less intrusive)
svn path=/trunk/; revision=14026
it's used to register a callback for a tap listener invoked if the
specified command line argument is specified to the "-z" flag.
Move it, along with routines to:
look up a "-z" argument in the table constructed by
"register_tap_listener_cmd_arg()" and either save the full
argument to "-z" and the corresponding listener if it's found or
return a failure indication if it isn't;
list the available tap listeners;
call the "init" routines for the tap listeners saved in the
table above;
and have Ethereal and Tethereal use those routines.
svn path=/trunk/; revision=13993
when formatting numerical values for CSV lists, save the locale
before formatting, set the locale to the "C" locale, and then
restore the locale, so that numbers are always formatted with
"." as the decimal point;
add to the RTP streams window a Copy button that copies all data
from the CList to the clipboard as CSV.
svn path=/trunk/; revision=13842
to determine forward and reverse directions. This fixes a capture I
have which has the same SSRC in the forward and reverse streams.
svn path=/trunk/; revision=13599
This includes: all functions in file.h now have a cf_ prefix, will have doxygen tags, will have the capture_file *cf as the first parameter and I tried to generalize the return values for non trivial functions.
Hopefully, I didn't introduced any new bugs, as I had to change a lot of files...
svn path=/trunk/; revision=13289
const pointer (so that we don't get complaints when we make the
tap-specific data argument to "tap_queue_packet()" a const pointer,
allowing dissectors to hand const data to a tap without a complaint), we
should make the tap per-packet function take a const pointer as an
argument as well. Do so.
In some taps, use _U_, or actually use the argument, rather than
sticking in dummy "X = X" assignments to fake use of parameters. (This
means that the tap functions in question no longer have the notion that
they act on a particular static structure wired in.)
svn path=/trunk/; revision=12910
of entries in it and check that many entries - that squelches a compiler
warning.
From Alejandro Vaquero: get rid of an unused argument to
"rtp_packet_add_graph()".
svn path=/trunk/; revision=12201
RTP graphic analysis;
assorted bug fixes;
display delay and jitter in milliseconds, and add the percentage
of lost packets to the statistics.
svn path=/trunk/; revision=12166
Also move ncp222.py, x11-fields, process-x11-fields.pl,
make-reg-dotc, and make-reg-dotc.py.
Adjust #include lines in files that include packet-*.h
files.
svn path=/trunk/; revision=11410
they have LF at the end of the line on UN*X and CR/LF on Windows;
hopefully this means that if a CR/LF version is checked in on Windows,
the CRs will be stripped so that they show up only when checked out on
Windows, not on UN*X.
svn path=/trunk/; revision=11400
changed window_xy (dialog) function calling in a lot of gtk files
cleanup of file selection code
cleanup in dlg_utils/file_dlg/ui_util
Please report any problems!!!
svn path=/trunk/; revision=11003
use window_new instead of dlg_window_new for the statistics windows
(as these are no dialog windows)
do some code cleanup
svn path=/trunk/; revision=10979
(including remebering of the dialog size in recent file).
for a first step, I replaced all window_new() calls from dialogs
into dlg_window_new() ones, and removed all gtk_window_set_position
calls, this should be done in a more generalized way
svn path=/trunk/; revision=10964
now sorted by ISO-layer, than alphabetically (now longer by functionality).
Seperated the tap registering from the actual menu making stuff,
so the seperate step of registering the tap and the menu is no longer needed.
Removed all things related to this double registering.
svn path=/trunk/; revision=10180
the title, and arranges to set the icon for it. Use that instead of
"gtk_window_new()" and separate calls to set the title and arrange to
set the icon.
Regularize #includes a bit.
Clean up white space.
svn path=/trunk/; revision=10054
Mac OS X
GNOME
Qt
KDE
Windows
all indicate that {message,alert} boxes are modal, at least for the
window to which they apply. (Presumably the idea is that not forcing
the user to pay attention to the alert box, and allowing more than one
alert box to be up for a given window, causes more problems than not
letting the user do stuff to that window in order to figure out what the
underlying problem is or figure out what to do to fix it - the message
should be sufficient, in most if not all cases, to let you know what the
problem is.)
Make "simple_dialog()" unconditionally make the alert box modal, and get
rid of ESD_TYPE_MODAL. XXX - we need to make it possible to make an
alert box modal for a given window, rather than just the top-level
window.
svn path=/trunk/; revision=10051
"tap_menu.h" file, and have the Ethereal taps include that rather than
"menu.h", so we don't have to worry about making sure we've included
<stdio.h> to define FILE, etc. just because some "menu.h" functions
require it.
svn path=/trunk/; revision=10031
attempt to write to a file (or close a file opened for writing).
Get rid of no-longer-needed #includes of <epan/filesystem.h>.
svn path=/trunk/; revision=10027
scrolled_window_new().
added gtk_scrolled_window_set_policy(AUTOMATIC,AUTOMATIC) to
scrolled_window_new()
added GTK2's gtk_scrolled_window_set_shadow(GTK_SHADOW_IN)
to every place needed
svn path=/trunk/; revision=9999
is TRUE if all the RTP raw data is present in the tvbuff and FALSE
otherwise. If it's not all present, also set "info_data_len" to 0 and
"info_data" to NULL.
In the RTP Analysis "Save Payload..." operation, check the
"info_all_data_present" flag and fail if it's not set, and use
"rtpinfo->info_data" and "rtpinfo->info_payload_offset" to get at the
payload, rather than using "cfile.pd", as the latter doesn't necessarily
refer to the current frame data.
Note that the RTP Streams save operation should also check the
"info_all_data_present" flag.
svn path=/trunk/; revision=9920
"simple_dialog()"; NULL might be #defined to be a pointer expression on
some platforms, causing compiler warnings (and, on platforms where a
null pointer doesn't have all its bits 0, possibly causing misbehavior,
although I don't think there are any such platforms on which Ethereal
runs).
Don't allow 0 as button mask argument to "simple_dialog()".
Squelch a compiler warning.
Report fatal problems as errors, not warnings.
Report file I/O errors with "file_open_error_message()".
Report file write errors (including those reported by "close()", e.g.
some errors writing to an NFS server) when saving raw packet data to a
file.
svn path=/trunk/; revision=9915
- use create_tempfile() to create the temporary files (causes temp files to be
created at the same location as other Ethereal temp files). Changed temp
filenames to "ether_rtp_dXXXXXX", where d is the stream direction.
- fixed a bug with temp files not being removed
svn path=/trunk/; revision=9886
addition to an error code, an error info string, for
WTAP_ERR_UNSUPPORTED, WTAP_ERR_UNSUPPORTED_ENCAP, and
WTAP_ERR_BAD_RECORD errors. Replace the error messages logged with
"g_message()" for those errors with g_strdup()ed or g_strdup_printf()ed
strings returned as the error info string, and change the callers of
those routines to, for those errors, put the info string into the
printed message or alert box for the error.
Add messages for cases where those errors were returned without printing
an additional message.
Nobody uses the error code from "cf_read()" - "cf_read()" puts up the
alert box itself for failures; get rid of the error code, so it just
returns a success/failure indication.
Rename "file_read_error_message()" to "cf_read_error_message()", as it
handles read errors from Wiretap, and have it take an error info string
as an argument. (That handles a lot of the work of putting the info
string into the error message.)
Make some variables in "ascend-grammar.y" static.
Check the return value of "erf_read_header()" in "erf_seek_read()".
Get rid of an unused #define in "i4btrace.c".
svn path=/trunk/; revision=9852
Check for write errors when opening the CSV file to write the reverse
data information.
For some reason (perhaps having to do with the sort indicators in
titles, the column titles don't show up in the GtkCList structure, so
they don't get printed; just directly use the table of column titles.
svn path=/trunk/; revision=9832
to both Larses):
- Comfort noise (CN) packets and packets following them
immediately are excluded from maximum delay calculation (as
well as marked packets are)
- Payload changes between CN and regular packets are ignored.
- Added a "Marker missing?" status warning for packets following
CN that don't have the marker bit set (cf. RFC1890 4.1)
- Changed status "Ok" to "[ Ok ]", so that when sorting by status
column, all non-Oks are grouped together.
- Minor GUI updates: reduced size of box, borders, spacing,
changed highlight colors.
svn path=/trunk/; revision=9819
- "Refresh" button is back again. Everything should work fine now
with multiple windows on the same streams.
- made packet list sortable by column.
- show a warning when user chooses "RTP Streams/Analyze"
without having a RTP packet selected instead of displaying the
streams box.
- minor GUI updates, renamed button "Next" to "Next non-Ok" for
more clarity.
svn path=/trunk/; revision=9788