aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2022-11-02WIP RFC: disable handling SDP RTP if Osmux is announced in MGCP bodypespin/osmux-wipPau Espin Pedrol2-3/+32
"X-Osmux: (*|<cid>)" is an Osmocom extension to MGCP which allows to signal request and acceptance of use of Osmux framing instead of RTP. It usually comes together with a regular SDP section which defines the AMR data to be transported (in Osmux frames rather than RTP packets). Hence, if Osmux is signalled, we want to avoid telling the RTP subsystem to decode the recorded packets as RTP, which would then override the default Osmux dissector. TODO: find way to mark a packet_info as being "osmux" in packet-mgcp.c, and use that information in packet-sdp.c to avoid adding the stream to the RTP dissector.
2022-11-01GOOSE: add back goose.floating_point filterPascal Quantin2-8/+6
Let's add it as a hidden filter for IEEE 754 single precision floating point Closes #18491
2022-11-01Qt: Move generic methods to utilsRoland Knall4-43/+59
Move the utils for checking for the last used directory and storing it out of ProfileDialog, as they are not Profiles specific
2022-11-01Qt: KeyboardInputInterval - allow more relaxed typing for keyboardSearchChuck Craft2-1/+5
Gtk popped up a search box when typing in the tree view. Most places in Qt, a Search: field was added to the dialog. Looks possible to buffer keystrokes and do a string search in Qt. Default value is 400ms (even on Windows). Average typing speed of 200 cpm = 300ms per character = too close to 400ms when searching the protocol name in Preferences -> Protocols.
2022-11-01wsdg: order Lua sections as a user may require themChuck Craft1-7/+7
Roughly follows order in previous chapter of examples.
2022-11-01Allow user-defined labels for Bluetooth UUIDsDavid Perry1-0/+120
2022-11-01Reset the "current conversation elements" after each dissector callJohn Thacker1-0/+10
packet_info has items that correspond to the single "most recent" conversation set via conversation_set_conv_addr_port_endpoints or conversation_set_elements_by_id. These should be reset after each call of a dissector, because they are only relevant for the dissector and any additional higher level dissectors it calls. Lower level protocols and protocols at the same level (i.e., in different PDUs of a shared lower level protocol) don't want to automatically use those conversation elements to find the current conversation. Separately, there should be an array or linked list of all conversation elements set in a packet, so that it can be used by the conversation table, conversation filters, etc., instead of just accessing the most recent conversation / conversation based on the last set address and ports. Fix #18278
2022-11-01BGP: Adding support for RFC8365Uli Heilmeier1-3/+83
Fixes: #18393
2022-11-01Dissector CMakeLists: custom header+support filesDavid Perry2-1/+10
2022-11-01Change some `wmem_packet_scope()` to `pinfo->pool`David Perry24-358/+361
2022-11-01F1AP: upgrade dissector to v17.2.0Pascal Quantin13-1629/+21959
2022-11-01Gitlab issue template: Info how to upload a fileUli Heilmeier1-1/+2
Add info on how to attach a file to an issue.
2022-11-01tls: add support for DESEGMENT_UNTIL_FIN, sequence numbersJohn Thacker9-66/+240
Add a tlsinfo struct that is similar to tcpinfo, and carries the sequence number (within the TLS stream) and the end of stream notification (from the TCP FIN or close_notify alerts) in addition to the session app handle pointer already used by TLS heuristic dissectors. Have HTTP use the end of stream notification in order to handle DESEGMENT_UNTIL_FIN the same way it does when HTTP is directly over TCP. Also have HTTP use the sequence number in order to reduce chunked processing from O(N^2) to O(N) similar to done over TCP. Update all the TLS heuristic dissectors that set the app handle to use the new structure. Note the workaround for the issue #15159 - the TLS dissector has to report to the TCP dissector that desegmentation at FIN is required, so that the TCP dissector will know to call the TLS dissector at FIN. However, the TLS dissector does not request that the TCP dissector resend bytes belonging to records that TLS has already desegmented (and decrypted, if possible), to avoid decrypting twice (and upsetting the decoder state.) This can mean the TCP dissector calling the TLS dissector to desegment at FIN with a zero byte payload. In such as case, the TLS dissector artificially returns "1" byte dissected to avoid indicating rejecting the payload and having the TLS (and subdissector) layers removed. (TCP ignores the value returned when desegmenting at FIN.) Fix #9154. Fix #14382.
2022-11-01TCP: Overriding of the automatic SEQ AnalysisEugène Adell18-23/+377
2022-11-01http: Store request/response data there, not in the conversationJohn Thacker3-68/+114
The host, request method, request URI, and response code are information that are local to a request/response pair. Storing them in the conversation data struct means that we only have access to one set of values at any one point. Currently they are updated every time a packet is dissected, which is fine for sequential processing but causes unexpected behavior when scrolling the window upwards, going directly to a packet, or filtering, among other out of order behavior. Store the values in the per packet data, and create the file scoped data only on the first pass. The conversation level data will have access to the final http_req_res_t struct, which is useful for connections that Upgrade to a different dissector. Also, when a response code is in the Informational 1xx category, that means it is an interim response and the next response could be for the same request. (This affects 100 Continue, 103 Early Hints, etc.) Fix #16753.
2022-11-01AMQP: Add field table values as fieldsJohn Thacker1-98/+152
Add the name, type, and values of field tables and arrays as fields under the FT_NONE header. This makes them filterable and show up in JSON export. Fix #18385
2022-11-01Filling in information about the server in the tap listenerHOMEPC\eaosk1-0/+2
2022-11-01QUIC: fix typoNan Xiao1-1/+1
2022-10-31ieee80211: remove duplicate entryAlexis La Goutte1-3/+0
packet-ieee80211.c:33184 hf_ieee80211_addr_ta called consecutively at line 33184 - previous at 33183
2022-10-31ieee80211: fix item type is FT_UINTY but call has len XAlexis La Goutte1-5/+5
packet-ieee80211.c:10060 proto_tree_add_item called for hf_ieee80211_hs20_icons_avail_len - item type is FT_UINT8 but call has len 2 packet-ieee80211.c:11869 proto_tree_add_item called for hf_ieee80211_ff_key_data_length - item type is FT_UINT8 but call has len 2 packet-ieee80211.c:21328 proto_tree_add_item called for hf_ieee80211_s1g_short_beacon_interval - item type is FT_UINT8 but call has len 2 packet-ieee80211.c:32379 proto_tree_add_item called for hf_ieee80211_pentapartial_timestamp - item type is FT_UINT8 but call has len 5 packet-ieee80211.c:32932 proto_tree_add_item called for hf_ieee80211_pv1_cnt_bat_bitmap - item type is FT_UINT16 but call has len 4
2022-10-31ieee80211: fix mask has odd number of digitsAlexis La Goutte1-2/+2
packet-ieee80211.c filter= wlan.he_ndp.sta_info.ru_start - mask has odd number of digits 0x3F800 expected max for FT_UINT32 is 8 packet-ieee80211.c filter= wlan.he_ndp.sta_info.ru_end - mask has odd number of digits 0x1FC0000 expected max for FT_UINT32 is 8
2022-10-31ieee80211: fix filter "wlan.fixed.publicact" appears consecutivelyAlexis La Goutte1-1/+2
/packet-ieee80211.c: - filter "wlan.fixed.publicact" appears consecutively - labels are "Public Action"" and "Protected Public Action""
2022-10-31E2AP: Following ans2wrs.py fix, can now extend RANParameter-ID rangeMartin Mathieson2-5/+4
2022-10-31dfilter: Improve representation of raw field referencesJoão Valverde3-13/+30
Instead of using the abstract type "<RAW>", which might be confusing, show FT_BYTES, but display the representation with the "@" operator, so it's not even more confusing in error messages why a field might flip-flop types. Refactor the field tostr() function and some other clean ups. Before: ``` Filter: _ws.ftypes.string ==${@frame.len} dftest: _ws.ftypes.string and frame.len <RAW> are not of compatible types. _ws.ftypes.string ==${@frame.len} ^~~~~~~~~ ``` After: ``` Filter: _ws.ftypes.string ==${@frame.len} dftest: _ws.ftypes.string <FT_STRING> and @frame.len <FT_BYTES> are not of compatible types. _ws.ftypes.string ==${@frame.len} ^~~~~~~~~ ```
2022-10-31dfilter: Add suport for raw addressing with referencesJoão Valverde8-16/+85
Extends raw adressing syntax to wok with references. The syntax is @field1 == ${@field2} This requires replicating the logic to load field references, but using raw values instead. We use separate hash tables for that, namely "references" vs "raw_references".
2022-10-31dfilter: Add support for raw (bytes) addressing modeJoão Valverde14-26/+201
This adds new syntax to read a field from the tree as bytes, instead of the actual type. This is a useful extension for example to match matformed strings that contain unicode replacement characters. In this case it is not possible to match the raw value of the malformed string field. This extension fills this need and is generic enough that it should be useful in many other situations. The syntax used is to prefix the field name with "@". The following artificial example tests if the HTTP user agent contains a particular invalid UTF-8 sequence: @http.user_agent == "Mozill\xAA" Where simply using "http.user_agent" won't work because the invalid byte sequence will have been replaced with U+FFFD. Considering the following programs: $ dftest '_ws.ftypes.string == "ABC"' Filter: _ws.ftypes.string == "ABC" Syntax tree: 0 TEST_ANY_EQ: 1 FIELD(_ws.ftypes.string <FT_STRING>) 1 FVALUE("ABC" <FT_STRING>) Instructions: 00000 READ_TREE _ws.ftypes.string <FT_STRING> -> reg#0 00001 IF_FALSE_GOTO 3 00002 ANY_EQ reg#0 == "ABC" <FT_STRING> 00003 RETURN $ dftest '@_ws.ftypes.string == "ABC"' Filter: @_ws.ftypes.string == "ABC" Syntax tree: 0 TEST_ANY_EQ: 1 FIELD(_ws.ftypes.string <RAW>) 1 FVALUE(41:42:43 <FT_BYTES>) Instructions: 00000 READ_TREE @_ws.ftypes.string <FT_BYTES> -> reg#0 00001 IF_FALSE_GOTO 3 00002 ANY_EQ reg#0 == 41:42:43 <FT_BYTES> 00003 RETURN In the second case the field has a "raw" type, that equates directly to FT_BYTES, and the field value is read from the protocol raw data.
2022-10-31dfilter: Pass a value by referenceJoão Valverde1-6/+5
The lifetime of the reference is longer than the runtime so avoid an unecessary fvalue dup.
2022-10-31dfilter: Remove unused data structureJoão Valverde2-9/+0
2022-10-31Profiles: Fix export crashing for single profileRoland Knall2-9/+10
When the classic profile has been cloned, and it contains coloring rules, that are no longer valid or their syntax is wrong, the export of single profiles will fail. The reason for that is still being investigated. It seems there might be an issue with selecting the right coloringfilter to be selected. This change only fixes the coloringrules file and the index is selected from the base model instead
2022-10-31asn2wrs.py: fix Needs64bHuang Hao1-1/+2
2022-10-31dbus: Use proper conversation function nameRoland Knall1-1/+1
2022-10-31UI: Only sort visible packets instead of all packetsNils Hanke1-2/+3
Previously, Wireshark was sorting all packets in a capture, regardless whether they were actually visible or not. If you are working with large PCAPs & filters, this is a MASSIVE performance drag. Therefore, this commit changes this by only sorting the visible packets which boosts the sorting performance in filtered views massively.
2022-10-31IPP: Add the charstring value so it is filterableJohn Thacker1-3/+10
For a string, add the value from the packet normally so that the value is filterable, shows up in JSON, etc. Prepend the tag description to the item so the formatting is displayed in the tree with the name like it has been.
2022-10-31ftp: fix Dead Store found by Clang AnalyzerAlexis La Goutte1-1/+0
line 949, column 5 Value stored to 'offset' is never read
2022-10-31Qt: Generate filter expressions for columns with multiple occurrencesJohn Thacker1-9/+23
Generate filter expressions for columns with multiple occurrences by using the membership operator (which is semantically OR). It's not clear if this approach makes more sense than AND; there's use cases for both. Don't do this for multifield custom columns, since we don't know which values were found by which field. That takes changing the column logic in several places. Ping #18001
2022-10-31Main dialog: Wireshark stops extcap on exit if no packets received yetj.novak@netsystem.cz1-0/+7
2022-10-31PTP: Enable analysis by defaultDylan Ulis1-1/+1
2022-10-31D-Bus: Resolve unique names into well-known namesSimon Holesch1-0/+66
Use the information gained from conversation tracking to infer well-known names. Show well-known names as addresses to improve the readability of a D-Bus capture.
2022-10-31D-Bus: Add member to response frame in info columnSimon Holesch1-6/+19
Add the method name to response frames, like Method Return and Error. The name is not included in the frame itself, but can be inferred with conversation tracking.
2022-10-31D-Bus: Add path, interface, member to responsesSimon Holesch1-2/+22
Add generated fields with the value from the request. D-Bus response frames don't include fields like "member", i.e. the method name. By adding generated fields it's easier to filter method calls and its method return by name.
2022-10-31epan: Allow FT_UINT_STRING for proto_tree_add_string()Simon Holesch2-4/+4
Since cbd3c447 ("ftypes: Add FT_UINT_STRING to IS_FT_STRING() macro") proto_tree_add_string() accepts FT_UINT_STRING, but the API check still fails. Update the API check to reflect that change.
2022-10-31D-Bus: Add conversation trackingSimon Holesch1-3/+147
2022-10-31TCP: Obvious Retransmission RTO is wrongEugène Adell1-2/+8
2022-10-31addr_resolv: add support for static hostname entriesChuck Craft7-24/+29
Ping #18075
2022-10-31TCP: last packet of a disordered series is marked as RetransmissionEugène Adell2-7/+31
2022-10-31NTP: Improve handling of poll and precision fieldsMiroslav Lichvar2-26/+22
The poll and precision fields in timing NTP messages are signed integers. Different NTP implementations have different minimum and maximum polling intervals. Some can be configured even with negative values for sub-second intervals (e.g. down to -7 for 1/128th of a second). NTP clocks on modern systems and hardware typically have a sub-microsecond precision. Print all poll values. Add the raw precision and change the resolution of the printed value to nanoseconds.
2022-10-31TLS: Don't assert on zero length handshake fragmentJohn Thacker1-2/+0
The fragment functions will work with a zero length fragment, which might happen if a record length is zero in a malformed packet and a reassembly is in progress. It is not by itself a fatal error (and could actually work, even though non-compliant.) There is already a tls.record.length.invalid expert info added by ssl_check_record_length for this case. Related to #17890.
2022-10-31QT: When opening files, filter on All Capture Files immediatelyJaap Keuter2-2/+4
2022-10-31Protobuf: Fix a google.protobuf.Timestamp displaying bugHuang Qiangxiong1-27/+53
1. Fix the bug that the timestamp of google.protobuf.Timestamp message type does not displayed while pbf_as_hf (Dissect Protobuf fields as Wireshark fields) is FALSE. 2. Add the use_utc preference for displaying google.protobuf.Timestamp in UTC or local zone format.
2022-10-31Qt: Add ProgressFrame to the Expert Information dialogJim Young1-0/+3