Robert Shearman
e91da1458d
rpcrt4: Authentication padding should only be generated if there is authentication data.
2006-05-23 11:36:26 +02:00
Robert Shearman
6e7d06ad34
rpcrt4: Handle pointers to context handles in the stubless code.
...
Implement check for NULL context handles if requested.
2006-05-20 17:37:36 +02:00
Robert Shearman
9c885c9185
rpcrt4: We don't need to free object pointers if we are told we must allocate.
2006-05-20 17:37:25 +02:00
Robert Shearman
a2767e8d71
rpcrt4: Use macros to generate the code for unmarshaling base types.
2006-05-20 17:37:13 +02:00
Robert Shearman
19fad8e710
rpcrt4: Don't set the memory pointer to NULL before calling PointerUnmarshall.
...
Call it with fMustAlloc set to TRUE instead to achieve the same result
without side-effects.
2006-05-20 17:36:42 +02:00
Robert Shearman
87ecf526b3
rpcrt4: Make more internal functions static.
2006-05-20 17:36:15 +02:00
Robert Shearman
0592210bcd
rpcrt4: Add the definition of RpcAuthVerifier to rpc_defs.h from the DCE/RPC spec.
...
Use it in RPCRT4_SendAuth instead of writing out the data byte-by-byte.
2006-05-20 17:31:16 +02:00
Huw Davies
f151ecb0d1
rpcrt4: Use IsClient to determine whether we can use the Buffer memory or not.
...
Add simple struct tests.
2006-05-20 14:03:56 +02:00
Robert Shearman
cfa769fb9f
rpcrt4: Warn if CreateNamedPipe fails.
2006-05-20 14:03:31 +02:00
Robert Shearman
5f266c54a1
rpcrt4: Add the correct amount of auth padding to messages.
2006-05-20 14:02:51 +02:00
Robert Shearman
4fb6295528
rpcrt4: Wait for all of the requested bytes to be returned for tcp connections.
2006-05-20 14:02:30 +02:00
Robert Shearman
a2d2d4db63
rpcrt4: Update the todo lists and copyrights.
2006-05-20 14:02:24 +02:00
Robert Shearman
9cebbdd80f
rpcrt4: Fix for the open functions in the transports being transposed between ncacn_np and ncalrpc.
2006-05-20 14:00:48 +02:00
Robert Shearman
c1a31cef3d
rpcrt4: Don't release the auth info if it isn't present.
2006-05-20 14:00:43 +02:00
Mike McCormack
a45b16a460
rpcrt4: Fix a possible memory leak, cleanup a bit.
2006-05-18 16:36:44 +02:00
Mike McCormack
c3a08421a2
rpcrt4: Fix and test RpcNetworkIsProtseqValid.
2006-05-18 16:36:34 +02:00
Mike McCormack
0f8f927aed
rpcrt4: Add a stub implementation for RpcMgmtIsServerListening.
2006-05-18 16:36:21 +02:00
Robert Shearman
63b66b95f9
rpcrt4: Implement RpcBindingSetAuthInfoExW based on the implementation for RpcBindingSetAuthInfoExA.
2006-05-18 10:37:13 +02:00
Robert Shearman
4cd5be2637
rpcrt4: A NULL AuthInfo is allowed.
...
Pass the server principal name into AcquireCredentialsHandleA.
2006-05-18 10:36:55 +02:00
Robert Shearman
84e42e0165
rpcrt4: Support all available security packages in RpcBindingSetAuthInfoExA, instead of just NTLM.
2006-05-18 10:36:42 +02:00
Robert Shearman
4e89efadf6
rpcrt4: Only use the cached connection if the authentication information is compatible.
2006-05-18 10:36:32 +02:00
Robert Shearman
217ec275b8
rpcrt4: Store non-connection-specific authentication information in a ref-counted structure that is shared between connections and bindings.
2006-05-18 10:36:07 +02:00
Robert Shearman
9b3cecaeb5
rpcrt4: Fix an off-by-one error when checking the size of the buffer in NdrInterfacePointerMarshall.
2006-05-18 10:35:56 +02:00
Robert Shearman
855535af62
rpcrt4: Handle interface pointers in EmbeddedComplexSize.
2006-05-18 10:35:16 +02:00
Robert Shearman
40d80d7c7a
rpcrt4: Make secur32 into a delayed import, as most of the time it won't be needed.
2006-05-18 10:35:12 +02:00
Robert Shearman
5067ea70c0
rpcrt4: Increment the call id field of the request header.
...
This is necessary for compatibility with MS/RPC servers.
2006-05-18 10:34:33 +02:00
Robert Shearman
c1d00c547b
rpcrt4: Implement NdrNonEncapsulatedUnionMemorySize.
2006-05-18 10:34:21 +02:00
Robert Shearman
62bbaf70b3
rpcrt4: Fix the wire protocol of the user marshal functions to match MS/RPC.
2006-05-18 10:34:09 +02:00
Robert Shearman
2aa52b07d6
rpcrt4: If the authorisation failed during a send then we should return ERROR_ACCESS_DENIED.
2006-05-18 10:33:50 +02:00
Robert Shearman
4fae04b2f5
rpcrt4: Fix NdrConformantArrayMemorySize.
2006-05-18 10:33:39 +02:00
Robert Shearman
c4fbad1d11
rpcrt4: Implement NdrUserMarshalMemorySize.
2006-05-18 10:33:00 +02:00
Huw Davies
effac656bb
rpcrt4: Don't update StubMsg->MemorySize while unmarshaling.
...
Add a bunch of marshaling tests (based on a program by Rob Shearman).
2006-05-17 21:46:43 +02:00
Robert Shearman
a8c51a4cd9
rpcrt4: Implement NdrInterfacePointerMemorySize.
2006-05-17 21:01:13 +02:00
Robert Shearman
45ee17899a
rpcrt4: Make some functions that aren't used outside of the file static.
2006-05-17 21:01:02 +02:00
Robert Shearman
b52ae402ad
rpcrt4: Fill out more of the function tables with functions that already exist.
2006-05-17 21:00:42 +02:00
Robert Shearman
ecd3780cc0
rpcrt4: Raise an exception if there is no default handler for a union.
2006-05-17 21:00:35 +02:00
Robert Shearman
0f7e4a877a
rpcrt4: Implement fixed array functions.
2006-05-16 12:51:30 +02:00
Robert Shearman
c27db4cde6
rpcrt4: Remove the BUFFER_PARANOIA overestimates for string memory sizes.
2006-05-16 12:51:19 +02:00
Robert Shearman
4c0b0e0069
rpcrt4: Implement computing of conformance from a correlation descriptor for conformant strings.
2006-05-16 12:51:09 +02:00
Robert Shearman
124acc9b67
rpcrt4: Fix conformant varying structs to comply to the DCE/RPC spec.
2006-05-16 12:50:54 +02:00
Robert Shearman
e6120f2029
rpcrt4: Don't duplicate the conformance calculating code, just use the
...
common ComputeConformance function to store the result in
pStubMsg->MaxCount (as this is what callback function store the
conformance value into anyway).
2006-05-16 12:50:42 +02:00
Robert Shearman
ecdd09b1b2
rpcrt4: Implement conformant varying struct functions.
2006-05-16 12:50:27 +02:00
Robert Shearman
63aaf8dbd7
rpcrt4: Implement more conformance operations and more types.
2006-05-16 12:50:19 +02:00
Mike McCormack
336e67e2d1
rpcrt4: Implemented NTLM authentication for rpcrt4 connections.
2006-05-16 12:40:13 +02:00
Mike McCormack
f20cfdfa84
rpcrt4: Use RPCRT4_Receive rather than accessing the transport directly.
2006-05-16 12:36:37 +02:00
Robert Shearman
b96d630022
rpcrt4: Implement NdrSimpleStructMemorySize.
2006-05-15 16:08:45 +02:00
Robert Shearman
2aff761dfd
rpcrt4: Fix the conformant struct functions to not call conformant array functions.
...
The conformance has to be the first thing in the buffer, in accordance
with the DCE/RPC spec and to be compatible with the pointer layout
format strings that MIDL generates.
2006-05-15 16:08:36 +02:00
Robert Shearman
4af0a6b805
rpcrt4: In NdrConformantBufferSize, SizeConformance should be called, not SizeVariance.
2006-05-15 16:08:28 +02:00
Robert Shearman
2479aec4af
rpcrt4: Save pStubMsg->ActualCount in a local variable in the complex
...
array functions, before calling a function that could change it and
cause the wrong number of loop iterations.
2006-05-15 16:08:19 +02:00
Robert Shearman
345c92643e
rpcrt4: Dereference the memory for pointers in NdrNonEncapsulatedUnionUnmarshall.
...
Pointers in a non-encapsulated union behave like embedded pointers, so
don't rely on the NdrPointer* functions doing the right thing in this
case and call the Pointer* functions directly.
2006-05-15 16:08:04 +02:00
Robert Shearman
f0aea2d5ee
rpcrt4: Rename ComplexStructSize to ComplexStructMemorySize to reflect the fact that it increments the buffer.
...
Replace the code in EmbeddedComplexSize that sizes non-encapsulated
unions without using a memory sizer routine, since this function
shouldn't touch the buffer.
Add a new function EmbeddedComplexMemorySize and use it in some memory
sizer routines where EmbeddedComplexSize was previously used.
2006-05-15 16:07:54 +02:00
Robert Shearman
788ce20dea
rpcrt4: Fix embedded pointers in arrays by taking into account the iteration when calculating the appropriate memory and buffer pointers.
2006-05-15 16:07:42 +02:00
Robert Shearman
07d032b24b
rpcrt4: The arm type mask should be comparing the highest byte against 0x80, as documented on MSDN.
...
Fix base type arm handling on little-endian machines, as the current
code would always pass in the address to the format char of 0x80
instead of the base type format char.
2006-05-15 14:07:59 +02:00
Robert Shearman
5cdfeeeed3
rpcrt4: Make ComplexStructSize increment the buffer.
2006-05-15 14:07:36 +02:00
Robert Shearman
3e988bfc4f
rpcrt4: Pass in the buffer value before incrementing to PointerMarshall in NdrPointerMarshall.
2006-05-15 14:07:25 +02:00
Robert Shearman
22bf15049c
rpcrt4: Implement NdrComplexStructMemorySize.
2006-05-15 14:07:13 +02:00
Robert Shearman
cedbddbfde
rpcrt4: Implement NdrComplexArrayMemorySize.
2006-05-15 14:06:55 +02:00
Robert Shearman
7ea0b860c5
rpcrt4: Fix the fault packet structure to comply with the DCE/RPC specification.
2006-05-15 14:06:52 +02:00
Robert Shearman
628c5e9baf
rpcrt4: The NDR memory sizing functions should increment the buffer pointer, so make sure to save it before calling one of these and restore it afterwards.
2006-05-15 14:06:41 +02:00
Robert Shearman
dcd0a39d4c
rpcrt4: Make NdrBaseTypeMemorySize increment the buffer and memory size fields of MIDL_STUB_MESSAGE.
2006-05-15 14:06:31 +02:00
Robert Shearman
4d65110b90
rpcrt4: Make NdrConformantStringUnmarshall use the new Read{Variance,Conformance}
...
functions and adapt them to be callable without having a correlation
descriptor.
2006-05-15 14:06:05 +02:00
Mike McCormack
a9886585de
rpcrt4: Add missing PKT_AUTH3 packet type.
2006-05-15 13:56:58 +02:00
Mike McCormack
7b5e5b65b0
rpcrt4: Add infrastructure for send authentication data.
2006-05-15 13:56:54 +02:00
Mike McCormack
1912fceab6
rpcrt4: Forward RpcBindingSetAuthInfo to RpcBindingSetAuthInfoEx.
2006-05-15 13:56:50 +02:00
Francois Gouget
325912de98
rpcrt4: Fix some conditional includes.
...
Check for HAVE_UNISTD_H before including unistd.h.
There is no HAVE_SYS_TYPES to check.
Tweak the indentation of a few #include directives.
2006-05-15 11:09:41 +02:00
Mike McCormack
9088debbfb
rpcrt4: Cache the connection so we don't rebind on every call.
2006-05-10 19:26:29 +02:00
Robert Shearman
ababfdef82
rpcrt4: Use the buffer passed in as an argument and don't increment
...
the buffer in the MIDL_STUB_MESSAGE in the inner pointer
marshalling/unmarshalling routines as these can be used for embedded
pointers, which handle the allocating or finding of the buffer
themselves. Do the incrementing in the outer
NdrPointerMarshall/Unmarshall/BufferSize routines instead.
2006-05-10 19:26:10 +02:00
Robert Shearman
c3a087eb45
rpcrt4: Align conformances and variances correctly, according the the DCE/RPC spec.
2006-05-10 19:25:45 +02:00
Robert Shearman
265045d251
rpcrt4: Move the writing and sizing of variances and conformances to common functions.
2006-05-10 19:25:37 +02:00
Robert Shearman
4b4192f3a5
rpcrt4: Correctly align the buffer to read/write array data to.
2006-05-10 19:25:26 +02:00
Robert Shearman
95d79e2c58
rpcrt4: Correctly align the buffer before reading/writing structure data.
2006-05-10 19:25:16 +02:00
Robert Shearman
5616c4150c
rpcrt4: Rename NonEncapsulatedUnionSize to NdrNonEncapsulatedUnionMemorySize.
2006-05-10 19:25:06 +02:00
Robert Shearman
75fe824e89
rpcrt4: Remove unintuitive requirement to pass the required alignment boundary minus one into the alignment macros.
2006-05-10 19:24:50 +02:00
Robert Shearman
f7fa650d1b
rpcrt4: Automatically resolve the endpoint.
2006-05-08 15:36:29 +02:00
Robert Shearman
cce073a777
rpcrt4: Use getaddrinfo to get the sockaddr.
...
Use getaddrinfo to get the sockaddr to use for connecting to a remote
server as Connection->NetworkAddr may be a hostname as well. Use a
loop to support both IP and IPv6.
2006-05-07 10:04:40 +02:00
Robert Shearman
772eb9bdf9
rpcrt4: Implement NdrConformantVaryingArrayFree.
2006-05-07 10:03:01 +02:00
Robert Shearman
b43e799486
rpcrt4: Dereference the pointer if necessary only after doing the
...
pointer checks and writing the pointer ID to the wire.
2006-05-07 10:02:05 +02:00
Robert Shearman
a4f5296ec6
rpcrt4: Add a stub for RpcBindingSetOption.
2006-05-07 10:01:44 +02:00
Robert Shearman
9519004b1a
rpcrt4: Improve the traces in the pointer functions.
2006-05-07 10:01:37 +02:00
Huw Davies
b1d5158980
rpcrt4: Support for non-encapsulated unions.
2006-05-05 16:55:49 +02:00
Mike McCormack
4e49c380c4
rpcrt4: Add stub implementations for RPC authentication functions.
2006-05-05 16:33:54 +02:00
Mike McCormack
481cec4006
rpcrt4: Invalid sockets should have a value of -1.
2006-04-21 12:44:45 +02:00
Mike McCormack
3d5e517e5b
rpcrt4: Add support for the ncacn_ip_tcp transport layer.
2006-04-21 11:34:08 +02:00
Mike McCormack
5bfb579f9a
rpcrt4: Add a stub transport layer for ncacn_ip_tcp.
2006-04-21 11:32:57 +02:00
Mike McCormack
87ddd7b53a
rpcrt4: Hide the details of the rpc transport mechanism.
2006-04-21 11:32:44 +02:00
Mike McCormack
83109e4937
rpcrt4: Abstract RPCRT4_SpawnConnection.
2006-04-21 11:32:29 +02:00
Mike McCormack
e7e209da64
rpcrt4: Move the connected check inside the named pipe code.
2006-04-21 11:32:07 +02:00
Mike McCormack
5c6f72873a
rpcrt4: Split the transport layer into a different file.
2006-04-21 11:31:51 +02:00
Mike McCormack
9b791e0983
rpcrt4: Allocate RpcServerProtseq in a single place.
2006-04-21 11:28:39 +02:00
Mike McCormack
fe99f330ab
rpcrt4: Abstract the transport layer functionality.
2006-04-20 19:48:15 +02:00
Mike McCormack
0ee6f59cc0
rpcrt4: Use a separate function to open each protseq.
2006-04-20 15:30:23 +02:00
Mike McCormack
3a4a76be2f
rpcrt4: Abstract access to the connection's waitable object.
2006-04-20 15:17:06 +02:00
Robert Shearman
0ced865aa1
rpcrt4: Don't apply the offset to the pointer passed to callback conformance functions.
2006-04-20 15:12:20 +02:00
Robert Shearman
8d36337644
rpcrt4: Free all pointers by default, except for conformant strings.
...
Free all pointers by default, except for conformant strings.
Conformant arrays should always be freed.
Add FC_CVARRAY to list of known types to avoid a FIXME.
2006-04-20 15:12:07 +02:00
Robert Shearman
b36d5fa11f
rpcrt4: Fix some memory leaks.
2006-04-20 15:11:51 +02:00
Robert Shearman
98facf4d0f
rpcrt4: Use the documented NDR_PROC_HEADER_EXTS structure.
...
Use the documented NDR_PROC_HEADER_EXTS structure instead of the
current NDR_PROC_EXTENSIONS structure currently in ndr_stubless.c.
2006-04-20 15:11:34 +02:00
Robert Shearman
28f494e31a
rpcrt4: Use INTERPRETER_OPT_FLAGS in ndrtypes.h instead of flags on an unsigned char.
2006-04-20 15:11:24 +02:00
Robert Shearman
312df9bf7f
rpcrt4: Store the return value on the stack for interpreted stubs.
...
Store the return value on the stack for stubs, as MIDL reserves space
for it and gives us a stack offset. This fixes calling methods with
thunks that assume that the return value will be stored on the stack.
2006-04-20 15:10:25 +02:00
Robert Shearman
f4de78babe
rpcrt4: Correctly fill in StackTop for stubless clients/servers.
...
Correctly fill in StackTop for stubless clients/servers so that
conformance for top-level parameters works.
2006-04-20 15:10:09 +02:00
Robert Shearman
727e25d673
rpcrt4: There's no need to set stubMsg.StackTop twice.
2006-04-20 15:09:49 +02:00