Commit Graph

81 Commits

Author SHA1 Message Date
Paul Gofman 50c27f88e3 nsiproxy.sys: Update interface table only if LUID is not found in convert_unix_name_to_luid().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 16:49:15 +02:00
Paul Gofman 1f3c1fdbc7 nsiproxy.sys: Update interface table only if LUID is not found in convert_luid_to_unix_name().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 16:49:13 +02:00
Paul Gofman 8e756fe5ac nsiproxy.sys: Finish search once found in convert_luid_to_unix_name().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 16:49:12 +02:00
Paul Gofman 42bf766866 nsiproxy.sys: Update interface table only if find_entry_from_{luid|index} fails.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-17 16:49:10 +02:00
Chip Davis 2264663c74 nsiproxy.sys: Implement IPv6 ipstats get_all_parameters on Mac OS and BSD.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-13 22:11:41 +02:00
Chip Davis 84e9696078 nsiproxy.sys: Implement IPv6 icmpstats get_all_parameters on Mac OS and BSD.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-13 22:11:41 +02:00
Chip Davis 0a70e1ac63 configure: Check for struct icmpstat.
NetBSD no longer has statistics structures. Instead, it stores them as
arrays of integer counters. It's backwards compatible with the old
statistics structures, but the struct definitions are missing. This has
likely been broken on NetBSD for quite some time as a result.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-13 22:11:41 +02:00
Eric Pouech d0833a0edf nsiproxy: Enable compilation with long types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 11:37:40 +02:00
Eric Pouech 73974636bd nsiproxy: Add intermediate variables for sscanf on ULONG.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 11:37:36 +02:00
Eric Pouech ff51493574 nsiproxy: Don't use long types for local types.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 11:37:33 +02:00
Eric Pouech f34f38bc20 nsiproxy: Don't use long types in internal structure / helpers.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-25 11:37:30 +02:00
Paul Gofman 6ba4c31e9d nsiproxy: Avoid redundant pid mapping in tcp_conns_enumerate_all().
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-23 18:42:13 +01:00
Eric Pouech 03ad57d2d0 nsiproxy.sys: Explicitly check for recvmsg() failure.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-11 09:31:46 +01:00
Alexandre Julliard f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Huw Davies 65f04bcc97 nsiproxy: Allow the name length to be IFNAMSIZ - 1.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52214
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-23 09:59:04 +01:00
Alex Henrie 06923f61e2 nsiproxy: Fix use after free in icmp_send_echo (scan-build).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-21 10:26:43 +01:00
Alex Henrie cf7dd52091 nsiproxy: Fix memory leaks on error paths in get_ipv6_addr_scope_table (cppcheck).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-20 10:13:52 +01:00
Alexandre Julliard e5d69d9ee6 configure: Assume that sys/ioctl.h is available on Unix.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
Alexandre Julliard a7ac3de3b3 configure: Assume that sys/socket.h is available on Unix.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
Alexandre Julliard 13ec7952e0 configure: Assume that unistd.h is available on Unix.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
Alexandre Julliard f8faa8ced5 configure: Assume that dirent.h is available on Unix.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:50 +01:00
Gabriel Ivăncescu 215c9275a8 nsiproxy: Fill the reply with the exact ICMP_ECHO_REPLY in the output buffer.
Because iphlpapi has no opportunity to convert the reply in async mode.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-26 11:57:59 +01:00
Gabriel Ivăncescu 2b13a6be44 nsiproxy: Use a context and fill the reply using a family op.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-26 11:57:34 +01:00
Gabriel Ivăncescu 5cd42975c3 nsiproxy: Fill the reply when it's not pending on the unix-side.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-26 11:57:27 +01:00
Gabriel Ivăncescu 5e8bd4d38e nsiproxy: Move set_reply_ip_status to a family op.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-26 11:57:14 +01:00
Jacek Caban a7ecf08040 include: Don't use DECLSPEC_HIDDEN for NTSYSAPI in Unix libs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 20:09:20 +02:00
Huw Davies 19a6d409c0 nsiproxy: Implement the ability to cancel the listener.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:31:48 +02:00
Huw Davies 881577deaf nsiproxy: Add support for parsing other icmp packets.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:31:47 +02:00
Huw Davies fffd222b3d nsiproxy: Parse any received ICMP_ECHO_REPLY.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:31:47 +02:00
Huw Davies aa73a91125 nsiproxy: Wait for an icmp reply.
This patch doesn't yet recv() that reply.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:31:47 +02:00
Huw Davies be0765ac26 nsiproxy: Pass the listen request off to a separate thread.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:31:47 +02:00
Huw Davies 20fb14bf27 nsiproxy: Introduce a unix-side handle returned by icmp_send_echo().
This represents the state of the icmp request for use on the PE-side.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:51:24 +02:00
Huw Davies aa4e0d466b nsiproxy: Actually send the ICMP ECHO request.
However, don't yet wait for the reply.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:51:02 +02:00
Huw Davies f59a64144b nsiproxy: Introduce IOCTL_NSIPROXY_WINE_ICMP_ECHO.
With this patch the irp is simply marked as pending and transferred to
the request thread which completes the irp with STATUS_NOT_SUPPORTED.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:50:34 +02:00
Huw Davies 7ed25b6c16 nsiproxy: Let the general dispatch function update the irp's status.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:50:18 +02:00
Huw Davies ef45e11918 nsiproxy: Rename private unixlib header to unix_private.h.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:50:08 +02:00
Huw Davies 37097b9687 nsiproxy: Build with msvcrt.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 16:43:26 +02:00
Huw Davies f6917badf1 nsiproxy: Switch memory allocations to malloc().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 16:39:55 +02:00
Huw Davies 280999aee2 nsiproxy: Use an ascii version of str(n)casecmp() instead of _strnicmp().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 16:39:53 +02:00
Huw Davies 7199f32c0b nsiproxy: Use a pthread_mutex to guard the interface list.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 16:39:50 +02:00
Alexandre Julliard 6ba7773121 makefiles: Add a -mcygwin flag to specify the inverse of -mno-cygwin.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Zebediah Figura f18d72ac18 nsiproxy: Return the IOSB status from nsi_ioctl().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-13 11:30:25 +02:00
Gerald Pfeifer fa6e791ca5 nsiproxy: Include sys/param.h from udp.c.
udp.c features specific code to handle versions of FreeBSD past early
12.0 snapshots. This is guarded by a check on __FreeBSD_version which
is defined in sys/param.h. Actually including that, like tcp.c already
does, activates that check and adjusted code and unbreaks the build.

Signed-off-by: Gerald Pfeifer <gerald@FreeBSD.org>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-07 10:17:07 +02:00
Zebediah Figura bd1aed5319 nsiproxy: Return STATUS_BUFFER_OVERFLOW to signal short buffers.
STATUS_MORE_ENTRIES is used for directory enumeration APIs, and signals that a
continuation will be returned on the next call.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 10:57:23 +02:00
Gerald Pfeifer a1cc71207c nsiproxy: Include sys/queue.h from tcp.c.
In what looks like a change between FreeBSD 11 and later versions
(FreeBSD 12 and 13), we now need to explicitly include sys/queue.h
to avoid

  In file included from dlls/nsiproxy.sys/tcp.c:42:
  /usr/include/netinet/tcp_var.h:516:2: error:
  expected specifier-qualifier-list before 'TAILQ_ENTRY'
  516 | TAILQ_ENTRY(tcptw)  tw_2msl;

Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-25 10:39:41 +02:00
Gerald Pfeifer f153ce2dab nsiproxy: Include netinet/in.h in udp.c.
This is necessary to define struct in_addr which is used by
netinet/ip.h on FreeBSD.

Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-23 11:48:54 +02:00
Gerald Pfeifer c5d9f2f7c6 nsiproxy: Add $(PROCSTAT_LIBS) to EXTRALIBS.
We try to use libprocstat on non-Linux platforms and detect its
presence in the configure phase. Make sure we actually link this
library in that case by adding $(PROCSTAT_LIBS) to EXTRALIBS.

Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 17:34:56 +02:00
Gerald Pfeifer 070185c341 nsiproxy: Include sys/types.h from udp.c.
This addresses failures like

  In file included from dlls/nsiproxy.sys/udp.c:34:
  In file included from /usr/include/sys/socketvar.h:38:
  In file included from /usr/include/sys/selinfo.h:36:
  /usr/include/sys/event.h:77:2: error: unknown type name 'u_short'

on non-Linux platforms.

Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 17:34:56 +02:00
Gerald Pfeifer b13c024d64 nsiproxy: Include stddef.h.
This is needed for size_t, which on FreeBSD is used by sys/sysctl.h.

Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-19 11:15:59 +02:00
Gerald Pfeifer 823532bd3a nsiproxy: Include netinet/in_pcb.h.
Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-19 11:15:52 +02:00