Module: wine Branch: master Commit: c589e978a7919f10bcf1150c98272db057255596 URL: https://gitlab.winehq.org/wine/wine/-/commit/c589e978a7919f10bcf1150c98272db...
Author: Hans Leidekker hans@codeweavers.com Date: Mon Feb 6 16:47:16 2023 +0100
wpcap: Implement pcap_dump_close().
---
dlls/wpcap/unixlib.c | 8 ++++++++ dlls/wpcap/unixlib.h | 6 ++++++ dlls/wpcap/wpcap.c | 12 ++++++++++++ dlls/wpcap/wpcap.spec | 2 +- 4 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/dlls/wpcap/unixlib.c b/dlls/wpcap/unixlib.c index ed753c0d6fd..49232c4c444 100644 --- a/dlls/wpcap/unixlib.c +++ b/dlls/wpcap/unixlib.c @@ -155,6 +155,13 @@ static NTSTATUS wrap_dump( void *args ) return STATUS_SUCCESS; }
+static NTSTATUS wrap_dump_close( void *args ) +{ + const struct dump_close_params *params = args; + pcap_dump_close( (pcap_dumper_t *)(ULONG_PTR)params->handle ); + return STATUS_SUCCESS; +} + static NTSTATUS wrap_dump_open( void *args ) { const struct dump_open_params *params = args; @@ -452,6 +459,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = wrap_datalink_val_to_description, wrap_datalink_val_to_name, wrap_dump, + wrap_dump_close, wrap_dump_open, wrap_findalldevs, wrap_get_tstamp_precision, diff --git a/dlls/wpcap/unixlib.h b/dlls/wpcap/unixlib.h index 740be3ad12e..3adb8f1f61d 100644 --- a/dlls/wpcap/unixlib.h +++ b/dlls/wpcap/unixlib.h @@ -138,6 +138,11 @@ struct dump_params const unsigned char *packet; };
+struct dump_close_params +{ + UINT64 handle; +}; + struct dump_open_params { UINT64 handle; @@ -337,6 +342,7 @@ enum pcap_funcs unix_datalink_val_to_description, unix_datalink_val_to_name, unix_dump, + unix_dump_close, unix_dump_open, unix_findalldevs, unix_get_tstamp_precision, diff --git a/dlls/wpcap/wpcap.c b/dlls/wpcap/wpcap.c index f3b203f983d..afb47a58a90 100644 --- a/dlls/wpcap/wpcap.c +++ b/dlls/wpcap/wpcap.c @@ -301,6 +301,18 @@ struct dumper UINT64 handle; };
+void CDECL pcap_dump_close( struct dumper *dumper ) +{ + struct dump_close_params params; + + TRACE( "%p\n", dumper ); + + if (!dumper) return; + params.handle = dumper->handle; + PCAP_CALL( dump, ¶ms ); + free( dumper ); +} + static inline WCHAR *strdup_from_utf8( const char *str ) { WCHAR *ret = NULL; diff --git a/dlls/wpcap/wpcap.spec b/dlls/wpcap/wpcap.spec index 7a59dda3caf..b3685d098fe 100644 --- a/dlls/wpcap/wpcap.spec +++ b/dlls/wpcap/wpcap.spec @@ -20,7 +20,7 @@ @ cdecl pcap_datalink_val_to_name(long) @ cdecl pcap_dispatch(ptr long ptr ptr) @ cdecl pcap_dump(ptr ptr str) -@ stub pcap_dump_close +@ cdecl pcap_dump_close(ptr) @ stub pcap_dump_file @ stub pcap_dump_flush @ stub pcap_dump_ftell