Commit f5627617 authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

nsiproxy: Pass a ptr to receive the ICMP handle.

parent 7bd58ba1
...@@ -366,6 +366,7 @@ static void handle_queued_send_echo( IRP *irp ) ...@@ -366,6 +366,7 @@ static void handle_queued_send_echo( IRP *irp )
{ {
struct nsiproxy_icmp_echo *in = (struct nsiproxy_icmp_echo *)irp->AssociatedIrp.SystemBuffer; struct nsiproxy_icmp_echo *in = (struct nsiproxy_icmp_echo *)irp->AssociatedIrp.SystemBuffer;
struct icmp_send_echo_params params; struct icmp_send_echo_params params;
icmp_handle handle;
NTSTATUS status; NTSTATUS status;
TRACE( "\n" ); TRACE( "\n" );
...@@ -376,6 +377,7 @@ static void handle_queued_send_echo( IRP *irp ) ...@@ -376,6 +377,7 @@ static void handle_queued_send_echo( IRP *irp )
params.ttl = in->ttl; params.ttl = in->ttl;
params.tos = in->tos; params.tos = in->tos;
params.dst = &in->dst; params.dst = &in->dst;
params.handle = &handle;
status = nsiproxy_call( icmp_send_echo, &params ); status = nsiproxy_call( icmp_send_echo, &params );
TRACE( "icmp_send_echo rets %08lx\n", status ); TRACE( "icmp_send_echo rets %08lx\n", status );
...@@ -389,7 +391,7 @@ static void handle_queued_send_echo( IRP *irp ) ...@@ -389,7 +391,7 @@ static void handle_queued_send_echo( IRP *irp )
} }
else else
{ {
irp_set_icmp_handle( irp, params.handle ); irp_set_icmp_handle( irp, handle );
RtlQueueWorkItem( listen_thread_proc, irp, WT_EXECUTELONGFUNCTION ); RtlQueueWorkItem( listen_thread_proc, irp, WT_EXECUTELONGFUNCTION );
} }
} }
......
...@@ -659,9 +659,9 @@ NTSTATUS icmp_send_echo( void *args ) ...@@ -659,9 +659,9 @@ NTSTATUS icmp_send_echo( void *args )
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
params->handle = handle_alloc( data ); *params->handle = handle_alloc( data );
if (!params->handle) icmp_data_free( data ); if (!*params->handle) icmp_data_free( data );
return params->handle ? STATUS_PENDING : STATUS_NO_MEMORY; return *params->handle ? STATUS_PENDING : STATUS_NO_MEMORY;
} }
static int get_timeout( LARGE_INTEGER start, UINT timeout ) static int get_timeout( LARGE_INTEGER start, UINT timeout )
......
...@@ -45,7 +45,7 @@ struct icmp_send_echo_params ...@@ -45,7 +45,7 @@ struct icmp_send_echo_params
void *request, *reply; void *request, *reply;
UINT request_size, reply_len; UINT request_size, reply_len;
BYTE bits, ttl, tos; BYTE bits, ttl, tos;
icmp_handle handle; icmp_handle *handle;
}; };
/* output for IOCTL_NSIPROXY_WINE_ICMP_ECHO - cf. ICMP_ECHO_REPLY */ /* output for IOCTL_NSIPROXY_WINE_ICMP_ECHO - cf. ICMP_ECHO_REPLY */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment