Commit Graph

994 Commits

Author SHA1 Message Date
Gerald Combs 53b2994b43 Docbook: Reorganize our guide directories
Move the top-level user-guide.adoc and developer-guide.adoc to their
respective source directores. This is in preparation for a future
toolchain revamp.

Move the wsug_graphics directory to wsug_src/images and wsdg_graphics
directory to wsdg_src/images. Copy common_graphics/* to the each images
directory and remove common_graphics. We only have five admonition
graphics; duplicating them lets us remove some build config overhead.

Rename wsluarm.adoc to wsdg_src/wsdg_lua_support.adoc.

Remove a dummy file.

Tested visually and by enabling `--failure-level=WARN`.
2023-02-11 21:09:46 +00:00
Philipp Dittmann 9c68879a27 Windows: Fix Release (unused variables)
- ws_assert does not work, because _ASSERT_ENABLED is false and gets optimized
- add _U_ to unused variables because of compile flag /W3
- local variables need suppression of warning 4189
2023-01-11 17:50:42 +00:00
Gerald Combs 4ec08045aa wslua: Fix wsluarm defines. 2023-01-09 03:17:30 +00:00
Gerald Combs 3120e64570 wslua: Fix the build.
Fix

    wireshark\epan\wslua\wslua_proto_field.c(423,29): error C2220: the following warning is treated as an error [wireshark\build\epan\wslua\wslua.vcxproj]
    wireshark\epan\wslua\wslua_proto_field.c(423,29): error C2220:             mask = (guint64)wslua_optguint32(L, idx, default_value); [wireshark\build\epan\wslua\wslua.vcxproj]
    wireshark\epan\wslua\wslua_proto_field.c(423,29): error C2220:                             ^ [wireshark\build\epan\wslua\wslua.vcxproj]
    wireshark\epan\wslua\wslua_proto_field.c(423,29): warning C4244: 'function': conversion from 'guint64' to 'lua_Number', possible loss of data [wireshark\build\epan\wslua\wslua.vcxproj]
    wireshark\epan\wslua\wslua_proto_field.c(423,29): warning C4244:             mask = (guint64)wslua_optguint32(L, idx, default_value); [wireshark\build\epan\wslua\wslua.vcxproj]
    wireshark\epan\wslua\wslua_proto_field.c(423,29): warning C4244:                             ^ [wireshark\build\epan\wslua\wslua.vcxproj]

on Windows and

    wireshark/epan/wslua/wslua_proto_field.c:1462:48: error: format specifies type 'unsigned long' but the argument has type 'guint64' (aka 'unsigned long long') [-Werror,-Wformat]
                                             f->vs,f->mask,f->blob);
                                                   ^~~~~~~
    wireshark/wsutil/wmem/wmem_strutl.h:51:56: note: expanded from macro 'ws_strdup_printf'
    #define ws_strdup_printf(...) wmem_strdup_printf(NULL, __VA_ARGS__)
                                                       ^~~~~~~~~~~

on macOS.
2023-01-04 09:54:52 -08:00
Nardi Ivan e6e3a91696 WSLUA: allow 64 bits bitmask for ProtoField objects
Mask might be specified using a (Lua) number, a string or a UInt64
object.

It is useful to handle 64 bit bitfields.
2023-01-04 14:32:23 +00:00
Developer Alexander 3107af85a7 lua: ByteArray integer parsing APIs
Adds APIs for parsing different kinds of integer from a lua ByteArray:

-16, 32 and 64 bit

-singed or unsigned

-encoded little endian or big endian
2023-01-04 07:47:13 +00:00
David Perry 86730990f6 Lua: make evaluate_lua and run_console public 2023-01-04 07:42:07 +00:00
David Perry c96a629c24 Support `FT_CHAR` in Lua `TreeItem_add_item_any()`
Treat a `FT_CHAR` field like a `FT_UINT*` field, the same as Wireshark's
`proto_tree_add_item()` does.

Closes #18353
2023-01-04 07:39:28 +00:00
Guy Harris 17d7b7cb73 wslua_proto: document the init and prefs_changed functions.
Don't just indicate that they exist and are settable, indicate what the
*do*.

See https://ask.wireshark.org/question/29843/how-to-maintain-a-packetfile-specific-var/.
2022-12-10 02:49:52 -08:00
Moshe Kaplan f413260df9 WSLUA: Add new lua function register_packet_menu()
This adds support to Wireshark for custom context menus for packets, so
that when a packet's context menu is opened (e.g., by right-clicking),
Wireshark can support doing things like "run a program" or
"open a URL" with a field from the packet as a parameter. Note that
this is similar to ArcSight's integration commands feature.

For example, it could be used like the following:

```
ROBTEX_URL = "https://www.robtex.com/dns-lookup/"
local function search_robtex(...)
    local fields = {...};

    for i, field in ipairs( fields ) do
        if (field.name == 'http.host') then
            browser_open_url(ROBTEX_URL .. field.value)
            break
        end
    end
end
register_packet_menu("Search host in Robtex", search_robtex, "http.host");
```

Fixes issue #14998
2022-12-07 18:47:14 +00:00
João Valverde a0d77e9329 dfilter: Return an error object instead of string
Return an struct containing error information. This simplifies
the interface to more easily provide richer diagnostics in the future.

Add an error code besides a human-readable error string to allow
checking programmatically for errors in a robust manner. Currently
there is only a generic error code, it is expected to increase
in the future.

Move error location information to the struct. Change callers and
implementation to use the new interface.
2022-11-28 15:46:44 +00:00
Chuck Craft 1e6f26adb6 wslua: init.lua - superuser logic; typeof() call on non-table
obj.__typeof exists only for "table" objects (see c4f1777a)
2022-11-10 07:32:30 -06:00
Chuck Craft 8de2b2e860 addr_resolv: add support for static hostname entries
Ping #18075
2022-10-31 14:45:56 +00:00
João Valverde 0c1461817f wslua: Add catch-all enum tables 2022-10-07 10:33:50 +01:00
João Valverde 91f7762fad wslua: Use wiretap introspection 2022-10-07 10:28:47 +01:00
João Valverde 9faaf0ecff wslua: Use introspection API to generate constants 2022-10-07 10:28:47 +01:00
Stig Bjørlykke 4512dfd66d wslua: Support FT_STRINGZPAD in FieldInfo
Add support for FT_STRINGZPAD in FieldInfo.
2022-10-04 15:28:18 +00:00
Guy Harris c9342873e5 Clarify dissector description, protocol short name, and protocol ong name.
Rename dissector_handle_get_long_name() and
dissector_handle_get_short_name() to
dissector_handle_get_protocol_long_name() and
dissector_handle_get_protocol_short_name(), to clarify that they fetch
names for the protocol that the dissector dissects, not for the
dissector *itself*.  Leave a deprecated
dissector_handle_get_short_name() wrapper, and export
dissector_handle_get_protocol_long_name(), as it's now used in some
dissectors.

Change some calls to dissector_handle_get_description() back to
dissector_handle_get_protocol_short_name(), as they appear to be made in
order to display a *protocol* name.

Rename some methods, variables, enums, and table column names to reflect
cases where the dissector description is being used.
2022-09-13 00:47:24 -07:00
Guy Harris d4394de669 Give dissectors a descriptive string.
It defaults to the short name of the protocol dissected by the
descriptor, but it's now possible to register a dissector with an
explicit description.

This is mainly for use in the Decode As UI.  It handles the case where
the same protocol might have different "Decode As..."-specifiable
dissectors for different situations.
2022-09-12 21:05:14 +00:00
Chuck Craft 9ab1093913 wsdg/Lua: no get_range() method - use fieldinfo.range 2022-09-11 17:52:10 +00:00
Gerald Combs 3bb40a586d wslua: Rename wslua_util.c to wslua_utility.c.
Rename wslua_util.c to wslua_utility.c so that our file name has the
form "wslua_<lower case lua module name>.c", which is the case for our
other modules.
2022-07-24 17:11:57 +00:00
Gerald Combs fd830dff58 wslua+lrexlib: Fixup our dependencies and paths.
Add a register_wslua target and have lrexlib depend on it so that
declare_wslual.h is generated in the right order. The working directory
when we create declare_wslua.h and register_wslua.c is epan/wslua,
so there's no need to explicitly set it. Remove an unneeded lrexlib
include path.
2022-07-22 19:08:13 +00:00
Gerald Combs b9ee6f4563 wslua: Fix more argument definitions. 2022-07-21 17:38:22 -07:00
Chuck Craft 9f59cae607 wslua: tapinfo - add state to debug info; update wsluarm
Test wth:
for _,tap_name in pairs(Listener.list()) do
  foo1 = Listener.new(tap_name)
  print (foo1)
end
2022-07-21 21:17:36 +00:00
Gerald Combs fbadb8c785 wslua: Capitalize words in our markup.
Capitalize words in our markup instead of depending on make-wsluarm.pl.
Add a single space after "Mode:".
2022-07-20 14:52:40 -07:00
Gerald Combs 3acd20fabe CMake+lrexlib: Another include path fix attempt. 2022-07-19 13:57:54 -07:00
Gerald Combs 9d96b301de CMake+lrexlib: Add another include path.
Include paths will be added until morale improves.
2022-07-19 13:04:44 -07:00
Gerald Combs 56a9666a3a wslua: Fix our argument definitions.
Make sure our argument definitions match their corresponding function
names.
2022-07-19 18:53:11 +00:00
Gerald Combs 953c6f73aa CMake+lrexlib: Fix our include paths.
Try to fix

C:\gitlab-builds\builds\-fyeYoMP\0\wireshark\wireshark\epan\wslua\lrexlib\pcre2\../../wslua.h(52,1): fatal error C1083: Cannot open include file: 'epan/wslua/declare_wslua.h': No such file or directory [C:\gitlab-builds\builds\-fyeYoMP\0\wireshark\wireshark\build\epan\wslua\lrexlib\lrexlib.vcxproj]
C:\gitlab-builds\builds\-fyeYoMP\0\wireshark\wireshark\epan\wslua\lrexlib\pcre2\../../wslua.h(52,1): fatal error C1083: #include <epan/wslua/declare_wslua.h> [C:\gitlab-builds\builds\-fyeYoMP\0\wireshark\wireshark\build\epan\wslua\lrexlib\lrexlib.vcxproj]
C:\gitlab-builds\builds\-fyeYoMP\0\wireshark\wireshark\epan\wslua\lrexlib\pcre2\../../wslua.h(52,1): fatal error C1083: ^ [C:\gitlab-builds\builds\-fyeYoMP\0\wireshark\wireshark\build\epan\wslua\lrexlib\lrexlib.vcxproj]
2022-07-18 09:47:34 -07:00
Alexis La Goutte b68acb6bff pcre2: Fix -Wmissing-prototypes
lpcre2.c:506:13: warning: no previous prototype for function 'luaopen_rex_pcre2'
lpcre2_f.c:207:5: warning: no previous prototype for function 'Lpcre2_config'
lpcre2_f.c:234:5: warning: no previous prototype for function 'Lpcre2_get_flags'
2022-07-15 13:45:52 +00:00
Gerald Combs 75efbb1ac4 Rename Logwolf to Logray
Switch to the name "Logray" for the log analyzer. Rays are biological
cousins of sharks and more people like the name "Logray" in a completely
unscientific survey here. Apologies for any inconvenience this might
cause.
2022-07-06 15:04:25 +00:00
Gerald Combs eaae2d0ee7 Minor Python3 script fixups.
Make some scripts executable and use the shebang line recommended at
https://docs.python.org/3/using/unix.html#miscellaneous
2022-06-27 16:46:55 +00:00
Gerald Combs 4153af1dc7 wslua: Port make-init-lua to Python3
Port the script that creates init.lua to Python3. The generated init.lua
removes one newline and adds another, otherwise the output is identical
to the Perl version.
Ping #18152.
2022-06-27 16:28:36 +00:00
Gerald Combs ae3010cabe wslua: Port make-taps to Python3
Port the script that creates taps_wslua.c and taps.txt to Python3. The
generated taps_wslua.c has one less newline, otherwise the output is
identical to the Perl version. Make the "taps" configuration file an
ConfigParser / .ini file.
Ping #18152.
2022-06-27 16:11:34 +00:00
Gerald Combs 602e87d6c5 Make sure our Python scripts read and write UTF-8.
Explicitly set "encoding='utf-8'" for each of the files we read and
write in make-reg.py and generate_authors.py.
2022-06-24 11:08:37 -07:00
Moshe Kaplan 26f87b3250 wslua: Port epan/wslua/make-reg.py to Python3
Port the script that creates
declare_wslua.h and register_wslua.c
to Python3.
Ping #18152.
2022-06-24 15:02:38 +00:00
Chuck Craft 39fc49b792 wsdg: escape tick marks after backtick; fix typo 2022-06-22 18:55:27 -05:00
João Valverde 0615ba6317 ftypes: Make accessor functions type safe 2022-06-20 17:29:57 +00:00
Roland Knall 2cf938cfa8 tap: Adding flags for tap_packet
This allows flags to be passed by the registering listener
to the collection of information
2022-06-10 05:46:15 +00:00
João Valverde 693820b90d lrexlib: Disable MSVC narrowing warnings 2022-06-02 14:47:04 +00:00
João Valverde cd73921a9e lrexlib: Disable a warning [-Wshorten-64-to-32]
The warning is harmless and we want to keep upstream code
as pristine as possible (unless there is a real issue in
the code of course) so disable the warning.
2022-05-27 15:14:16 +01:00
João Valverde b8279a6ce1 lrexlib: Pacify checkAPIs 2022-05-26 10:09:13 +00:00
João Valverde 8ff24c2b6e Lua: Add lrexlib-pcre2 Lua regex bindings
Add the de facto standard Lua regex API to Wireshark. Upstream
code is copied verbatim and the module opened in the "rex" table.
This is just a user convenience and developer quality of life improvement
over the GRegex Lua API because it has always been possible to
load lrexlib-pcre2 as a Lua module from Wireshark.
2022-05-26 10:09:13 +00:00
João Valverde e6da2cd8de Lua: Remove on-life-support GRegex bindings
This code has been unmaintained and does not pass the lrexlib test
suite. GRegex itself has been obsolescent for some time, although GNOME
has recently restarted trying to move it to PCRE2.

Remove it in preparation for a move to lrexlib-pcre2.
2022-05-26 10:09:13 +00:00
Chuck Craft 4376cf1209 wsdg/lua: gui.colorized_frame.fg example is a few digits short 2022-05-16 22:48:37 +00:00
Peter Lemenkov b1ba667acc wslua: another fix for -Werror=clobbered
```
cd /home/petro/work/wireshark/epan/wslua && /usr/bin/cc -DG_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES -DWS_BUILD_DLL -I/home/petro/work/wireshark -I/home/petro/work/wireshark/include -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include -isystem /usr/include/lua-5.1 -isystem /home/petro/work/wireshark/epan/wslua -fvisibility=hidden  -fexcess-precision=fast -Wall -Wextra -Wendif-labels -Wpointer-arith -Wformat-security -fwrapv -fno-strict-overflow -Wvla -Waddress -Wattributes -Wdiv-by-zero -Wignored-qualifiers -Wpragmas -Wno-overlength-strings -Wno-long-long -Wredundant-decls -Wno-error=maybe-uninitialized -Wno-format-truncation -Wframe-larger-than=32768 -Wunused-const-variable -Wshadow -Wold-style-definition -Wstrict-prototypes -Wlogical-op -Wjump-misses-init -Werror=implicit -Wno-pointer-sign -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fmacro-prefix-map=/home/petro/work/wireshark/= -fmacro-prefix-map=/home/petro/work/wireshark/= -O2 -g -DNDEBUG -fPIC -std=gnu11 -Werror -MD -MT epan/wslua/CMakeFiles/wslua.dir/init_wslua.c.o -MF CMakeFiles/wslua.dir/init_wslua.c.o.d -o CMakeFiles/wslua.dir/init_wslua.c.o -c /home/petro/work/wireshark/epan/wslua/init_wslua.c
/home/petro/work/wireshark/epan/wslua/wslua_tree.c: In function ‘TreeItem_add_packet_field’:
/home/petro/work/wireshark/epan/wslua/wslua_tree.c:79:17: error: variable ‘item’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
   79 |     proto_item* item = NULL;
      |                 ^~~~
Consolidate compiler generated dependencies of target dissectors
cc1: all warnings being treated as errors
make[2]: *** [epan/wslua/CMakeFiles/wslua.dir/build.make:508: epan/wslua/CMakeFiles/wslua.dir/wslua_tree.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
```

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
2022-04-25 11:24:11 +00:00
Gerald Combs e364444b24 wslua: Update the menu group documentation.
Update to match ca04f4c8cb.
2022-04-15 21:30:50 +00:00
Gerald Combs ca04f4c8cb Qt: Update our dynamic menu groups.
Add log-specific statistics groups, and use them to limit the dynamic
menu items in Wireshark and Logwolf.
2022-04-12 12:14:03 -07:00
Chuck Craft 14bf5bbdf1 wslua: Lua Console - add Clear button; restore print() 2022-03-25 09:47:05 +00:00
Guy Harris 109b92b5d7 wiretap: have wtap_dump_close() provide a "needs to be reloaded" indication.
This allows the "needs to be reloaded" indication to be set in the close
process, as is the case for ERF; having a routine that returns the value
of that indication is not useful if it gets seet in the close process,
as the handle for the wtap_dumper is no longer valid after
wtap_dump_close() finishes.

We also get rid of wtap_dump_get_needs_reload(), as callers should get
that information via the added argument to wtap_dump_close().

Fixes #17989.
2022-03-14 19:12:20 +00:00