Dan Hipschman
ba54c455fb
widl: Allow size_is on strings.
2007-09-10 15:29:46 +02:00
Dan Hipschman
62fb623e14
widl: Implement NDR for struct field alignment.
2007-09-10 15:29:46 +02:00
Dan Hipschman
3d036da6d3
widl: Fix top-level and callback conformances.
2007-09-10 15:29:46 +02:00
Andrew Talbot
04e0986d60
rpcrt4: Constify some variables.
2007-08-22 11:58:13 +02:00
Andrew Talbot
fa3d623882
rpcrt4: Constify some variables.
2007-08-20 11:56:05 +02:00
Rob Shearman
8a87d916b4
rpcrt4: Convert bind ack and nack reject reasons into RPC status codes when binding.
2007-07-23 11:48:13 +02:00
Dmitry Timoshkov
12d3905427
rpcrt4: Fix the buffer bounds check.
2007-07-19 12:03:50 +02:00
Rob Shearman
d212adbf10
rpcrt4: Add some more RPC to NCA status code mappings.
...
Add RPC_S_SEC_PKG_ERROR to the list of "hard" errors.
2007-07-18 12:56:16 +02:00
Rob Shearman
2703059933
rpcrt4: Never allocate memory for the discriminant in union_arm_unmarshall as the memory is part of the union and has already been allocated.
2007-07-16 22:46:59 +02:00
Rob Shearman
b44c16cc8d
rpcrt4: Check to make sure there is enough data in the buffer during unmarshalling, so that the code doesn't try to read beyound the end of the buffer.
2007-07-16 22:46:55 +02:00
Rob Shearman
686c0f094c
rpcrt4: Even though FC_ENUM16 is an unsigned type, the highest allowable value that can be marshalled is SHRT_MAX, not USHRT_MAX.
2007-07-16 22:46:47 +02:00
Rob Shearman
c6dc14d81b
rpcrt4: Make binding to an interface a function of RpcAssoc instead of
...
binding handles, since binding requires information from the
association and not from the binding handle.
2007-07-13 12:27:17 +02:00
Rob Shearman
69eeb8b1b7
rpcrt4: Return a fault packet if the proc num exceeds the index of the last function available for the interface.
2007-07-05 19:53:53 +02:00
Rob Shearman
234b8cbe0a
rpcrt4: Call RPCRT4_Send directly from PKT_RECEIVE handler in server.
...
Remove the WINE_RPCFLAG_EXCEPTION hack to pass exception information to
I_RpcSend.
2007-07-05 19:53:47 +02:00
Rob Shearman
9c77d7ac1f
rpcrt4: Translate between NCA and RPC status codes.
2007-07-05 19:53:29 +02:00
Rob Shearman
67c8fa58ec
rpcrt4: Store the assoc_group_id in the connections.
2007-06-27 12:32:43 +02:00
Rob Shearman
9787f12589
rpcrt4: Make pointers to RPCRT4_BuildBindHeader and RPCRT4_BuildBindAckHeader const.
2007-06-27 12:32:43 +02:00
Rob Shearman
680e35643d
rpcrt4: Remove the unused AuthInfo field from the RpcAssoc structure and Used from RpcConnection.
2007-06-27 12:32:42 +02:00
Dan Hipschman
46222aee6e
widl: Allow enums as union switch types.
2007-06-26 11:59:53 +02:00
Dan Hipschman
ea7b1694de
rpcrt4: Allow enums as union switch types.
2007-06-26 11:59:43 +02:00
Dan Hipschman
076a6206ff
rpcrt4/tests: Wrap a try/except block around tests.
2007-06-26 11:59:32 +02:00
Dan Hipschman
512c36cae6
widl: Get simple enums working.
2007-06-26 11:59:02 +02:00
Rob Shearman
545c2a95f6
rpcrt4: Dereference the pointer passed to the marshaling/unmarshaling/sizing routines in complex types for interface pointers.
2007-06-25 23:21:55 +02:00
Rob Shearman
fc124eca6e
rpcrt4: Implement marshalling, unmarshalling and buffer sizing for the context handle type.
2007-06-25 23:21:55 +02:00
Rob Shearman
d36f02eaa9
rpcrt4: Implement marshalling/unmarshalling for the range NDR type.
2007-06-25 23:21:54 +02:00
Rob Shearman
4174255e0c
rpcrt4: Set PointerBufferMark to the buffer location immediately after the non-pointer data in complex struct and array marshaling and unmarshaling to keep to the DCE/RPC specification.
2007-06-25 23:21:54 +02:00
Rob Shearman
cbafe663b0
rpcrt4: Try a lot harder to resuse existing connections by comparing inside the RpcQualityOfService and RpcAuthInfo objects.
...
Store a copy of the SEC_WINNT_AUTH_IDENTITY structure passed in to
RpcBindingSetAuthInfo(Ex) to enable us to do this for RpcAuthInfo objects.
2007-06-25 23:21:54 +02:00
Rob Shearman
0ebcacca39
rpcrt4: Store the assoc_group_id field returned from the bind_ack packet and use it when creating further connections in the association group.
2007-06-25 23:21:53 +02:00
Rob Shearman
62c49bdd18
rpcrt4: When an exception is raised, return the stored exception code instead of the generic RPC_S_CALL_FAILED.
2007-06-25 23:21:53 +02:00
Rob Shearman
2de3d31a7a
rpcrt4: Translate STATUS_ACCESS_VIOLATION exceptions caught whilst executing the stub function to ERROR_NOACCESS to prevent confusing exceptions occurring in the client.
2007-06-25 23:21:53 +02:00
Rob Shearman
c411d95e20
rpcrt4: Close the connection if a protocol error or certain other kinds of errors occur, instead of returning it to the connection pool.
2007-06-25 23:21:53 +02:00
Rob Shearman
0d05685b68
rpcrt4: Return a fault packet if the interface/object pair in a request packet aren't registered.
2007-06-25 23:21:52 +02:00
Rob Shearman
903fb72b21
rpcrt4: Add a STUBLESS_FREE phase for freeing the allocated memory in the server function.
2007-06-25 23:21:52 +02:00
Rob Shearman
a1dca20dd7
rpcrt4: Add support for ServerAllocSize parameters.
2007-06-25 23:21:52 +02:00
Rob Shearman
73c31ed309
rpcrt4: Don't use add on the sizes of array elements to an open-ended structure; use FIELD_OFFSET with the array index instead.
2007-06-25 23:21:52 +02:00
Dan Hipschman
4e8c8d03e5
widl: Add tests for arrays of pointers.
2007-06-21 13:10:46 +02:00
Rob Shearman
0f826e7cc1
rpcrt4: Use the offset to array data in embedded pointer format descriptions.
2007-06-20 13:08:30 +02:00
Dan Hipschman
d2c15ed01b
rpcrt4: Fix typo in union buffer size calculation.
2007-06-19 11:46:02 +02:00
Dan Hipschman
6fd05b1dc7
rpcrt4: Fix bug calculating union switch type.
2007-06-19 11:45:51 +02:00
Dan Hipschman
b09b917a5c
rpcrt4: Remove inaccurate comments.
2007-06-19 11:45:44 +02:00
Dan Hipschman
08c846a9da
rpcrt4: Add encapsulated union tests.
2007-06-19 11:45:11 +02:00
Rob Shearman
0871ab9130
rpcrt4: Implement encapsulated union NDR functions.
2007-06-18 13:58:09 +02:00
Dan Hipschman
3325020636
widl: Handle wire_marshal pointer attributes.
2007-06-14 11:36:05 +02:00
Dan Hipschman
2bc8808be1
widl: Test structure argument marshalling.
2007-06-14 11:35:55 +02:00
Dan Hipschman
c0982b42c5
widl: Handle wire_marshal types.
2007-06-14 11:35:44 +02:00
Dan Hipschman
88c8128704
widl: Simplify correlation descriptor code.
2007-06-12 11:13:30 +02:00
Dan Hipschman
8f689ee023
widl: Implement conformant structure handling.
2007-06-06 12:13:35 +02:00
Dan Hipschman
978b4d4f4e
widl: Represent arrays with type_t.
2007-06-06 12:13:16 +02:00
Dan Hipschman
e5c8a6eb5d
rpcrt4: Fix build of test on Solaris by renaming a variable.
2007-05-31 13:07:13 +02:00
Francois Gouget
8d7ad785e3
rpcrt4/tests: Fix a Visual C++ double to float conversion warning.
2007-05-29 13:46:19 +02:00
Francois Gouget
f27a7153a5
rpcrt4/tests: Fix signed/unsigned and 32/64bit issues with the wiredatalen parameter.
2007-05-29 13:46:14 +02:00
Dmitry Timoshkov
3c9e7a7f33
wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility.
2007-05-25 20:37:56 +02:00
Dan Hipschman
8f7a5d63ec
widl: Allow types that reference themselves.
2007-05-25 19:36:12 +02:00
Dan Hipschman
00ce411231
widl: Handle pointers in unions.
...
Unify write_pointers with write_embedded_types, and handle pointers in
unions. Includes tests.
2007-05-25 19:35:29 +02:00
Dan Hipschman
b4e8073f8c
rpcrt4: Fix test typo.
2007-05-25 19:35:02 +02:00
Dan Hipschman
c5aaadc4c8
widl: Lay framework for unions with simple unions working.
2007-05-21 12:40:58 +02:00
Andrew Talbot
d5d056ef75
rpcrt4: Exclude unused headers.
2007-05-18 14:11:22 +02:00
Dan Hipschman
52ca3ebada
widl: Write some structures to the type format string on the fly.
2007-05-16 13:33:17 +02:00
Dan Hipschman
d9c120490f
widl: Handle pointers fields that point to structures.
2007-05-14 14:24:16 +02:00
Dan Hipschman
ef433e2792
widl: Remove var_t's ptr_level field and start write_pointers.
2007-05-11 12:33:27 +02:00
Rob Shearman
35e99b50f1
rpcrt4: Print the correct values when warning about a bad frag length.
2007-04-30 12:33:19 +02:00
Dan Hipschman
ba17c25e62
rpcrt4: Add a testcase for RPCs with fixed-size arrays.
2007-04-26 16:12:23 +02:00
Dan Hipschman
cc09b0c19c
rpcrt4: Add tests for RPC and widl generated code.
2007-04-26 15:48:13 +02:00
Dan Hipschman
6c5e78fe03
rpcrt4: Add tests for RpcServerListen and friends.
2007-04-13 11:42:42 +02:00
Francois Gouget
0081b430e1
Assorted spelling and English fixes.
2007-04-03 11:23:12 +02:00
Rob Shearman
173590a664
rpcrt4: Fixing the using of the auth_len values the wrong way round - PKT_PRIVACY implies the packet will be encrypted, not just signed.
2007-03-28 12:14:18 +02:00
Rob Shearman
763fe63213
rpcrt4: Use the correct authorization trailer length using information from the security provider.
...
Previously it was hardcoded to 16, so only the NTLM provider would work correctly.
2007-03-27 13:00:00 +02:00
Rob Shearman
88295b9a02
rpcrt4: Call CompleteAuthToken if InitializeSecurityContext returned a code that says it should be called.
...
Currently, the only security provider that requires this is the Digest
one, which we don't really care about, but is supported for completeness.
2007-03-27 12:59:42 +02:00
Rob Shearman
88e9b3fad8
rpcrt4: Call InitializeSecurityContext from only one function.
...
This reduces the amount of code and ensures that the parameters passed
to it stay the same, apart from the previous context and the output
buffer description.
2007-03-27 12:42:05 +02:00
Rob Shearman
7abb647cd3
rpcrt4: Retrieve the maximum token length from the security provider rather than using a hardcoded and rather small limit.
2007-03-27 12:41:54 +02:00
Rob Shearman
7e061e4f64
rpcrt4: Make some parameters of non-exported functions const.
2007-03-27 12:39:18 +02:00
Rob Shearman
adb7cca85c
rpcrt4: Implement associations which are intermediary objects that track the relationship between the client and a given endpoint on the server.
...
Use these to encapsulate the connection pool so that the lifetimes of
connections are properly handled again.
2007-03-27 12:39:05 +02:00
Andrew Talbot
67813450b9
rpcrt4: Replace inline static with static inline.
2007-03-23 12:29:52 +01:00
Rob Shearman
8620d15d39
rpcrt4: Unmarshal NULL OLE interfaces properly by handling the case of a 0 stream size.
2007-03-14 18:49:49 +01:00
Huw Davies
6fcff278b3
rpcrt4: Tests that show that the allocation rules for unmarshaling a conformant array are the same as those for a simple structure.
2007-03-13 11:52:37 +01:00
Francois Gouget
d3245723ae
rpcrt4: Fix a file handle leak in RPCRT4_RPCSSOnDemandCall().
...
Also, RPCRT4_RpcssNPConnect() returns a file handle so treat it as
such by checking it against INVALID_HANDLE_VALUE and not NULL.
2007-03-08 21:31:07 +01:00
Alexandre Julliard
9dd1f1e341
Added version information for a number of dlls.
2007-03-07 21:25:16 +01:00
Rob Shearman
55a103ca5c
rpcrt4: Use IPPROTO_TCP for SOL_TCP if SOL_TCP isn't defined.
...
Fixes compilation on *BSD systems.
2007-03-01 20:42:50 +01:00
Rob Shearman
829dfa8052
rpcrt4: Set TCP_NODELAY on the socket for the ncacn_ip_tcp transport to reduce latency.
2007-02-28 13:28:40 +01:00
Rob Shearman
ca6fe3fbf2
rpcrt4: Fix a memory leak in I_RpcSendReceive caused by I_RpcReceive overwriting pMsg->Buffer.
...
(Reported by Huw Davies.)
2007-02-21 19:48:51 +01:00
Rob Shearman
b491d926d5
rpcrt4: Add documentation for the I_Rpc* RPC message functions.
2007-02-21 19:48:44 +01:00
Rob Shearman
b6d8b27be5
rpcrt4: The format structures used in the marshaling code should have 1-byte alignment.
2007-02-12 15:20:52 +01:00
Alexandre Julliard
639ffbfde7
rpcrt4: Enter new named pipe connections into the protocol connection list.
2007-02-12 14:13:22 +01:00
Francois Gouget
45d5ff01a6
rpcrt4: Better match the PSDK types and fix the winapi_check warnings.
2007-02-07 21:42:02 +01:00
Francois Gouget
62662d21dd
rpcrt4: Improve the prototypes Win64 compatibility by replacing long with LONG.
2007-02-06 13:23:53 +01:00
Andrew Talbot
3bc14d9110
rpcrt4: Declare some functions static.
2007-01-25 12:04:18 +01:00
Rob Shearman
399844e9f6
rpcrt4: RPCRT4_strdupWtoA and RPCRT4_strdupAtoW don't change the input string, so make the input const.
2007-01-25 12:00:13 +01:00
Rob Shearman
961455c7f0
rpcrt4: Stash away NetworkOptions passed in from the binding string so that transports can look at the string if needed.
2007-01-25 12:00:10 +01:00
Rob Shearman
d05f5f33a4
rpcrt4: When copying quality of service, deep copy TransportCredentials structure too.
...
Remove some no longer relevant fixmes.
2007-01-24 12:07:24 +01:00
Rob Shearman
2103bca4db
rpcrt4: Fix a typo in rpcrt4_conn_open_pipe.
...
Fix a typo in rpcrt4_conn_open_pipe where the initial setting of dwFlags
was done inside the switch statement instead of at the indented place of
at the start of the block (thanks to Jan Zerebecki for noticing this bug).
2007-01-24 12:07:14 +01:00
Huw Davies
e3abd2b3ff
rpcrt4: Implement NdrSimpleType{Marshall,Unmarshall}.
2007-01-24 11:59:01 +01:00
Rob Shearman
e6f4514512
rpcrt4: Try to avoid partial named pipe read/writes by looping.
2007-01-23 11:38:23 +01:00
Rob Shearman
9fb15b4105
rpcrt4: Make the fixme for an unhandled packet type more useful by printing the code of the unhandled packet type.
2007-01-23 11:38:16 +01:00
Rob Shearman
0debcf5b1e
rpcrt4: Handle security quality of service flags relevant to the ncacn_np protocol.
2007-01-22 12:01:57 +01:00
Rob Shearman
4b79a0252a
rpcrt4: Track the security quality of service settings for bindings and connections.
2007-01-22 12:01:54 +01:00
Joel Parker
2319999a05
Remove redundant semicolons for ANSI compatibility.
2007-01-17 11:58:15 +01:00
Paul Vriens
c21d65cfb2
rpcrt4/tests: Cast-qual warning fixes.
2007-01-12 20:41:22 +01:00
Francois Gouget
fa7c32f56c
rpcrt4: Give a proper name to some formerly reserved MIDL_STUB_MESSAGE fields.
...
Define NTDDI_VERSION so we get definitions for the Reserved51_X fields with the PSDK.
This fixes compilation of the ndr_marshall.c with the PSDK.
2007-01-11 11:37:13 +01:00
Francois Gouget
f43b549081
rpcrt4/tests: Remove an unneeded '#if 0' and fix the code so it compiles without warnings.
2007-01-08 12:08:03 +01:00
Francois Gouget
9f586f1b79
rpcrt4/tests: Replace some '#if 0's with 'if (0)'s, or remove them if not needed anymore.
...
Fix the code so it compiles without warnings.
2007-01-08 12:07:59 +01:00
Rob Shearman
98c87d0e70
rpcrt4: Pass WT_EXECUTELONGFUNCTION to QueueUserWorkItem since the
...
function being called can sometimes take a long time to return and we
almost always want a new thread to be created if there are no free
threads available.
2007-01-04 21:13:49 +01:00
Rob Shearman
776f81b3be
rpcrt4: A NULL IfSpec in RpcServerUnregisterIf should remove all interfaces, not crash.
2007-01-02 20:49:04 +01:00
Rob Shearman
48344f505b
rpcrt4: Free the resource allocated by InitializeSecurityContext when the connection is closed.
2006-12-18 11:45:51 +01:00
Dmitry Timoshkov
8c3fdfea42
rpcrt4: Make some data const.
2006-12-14 20:11:34 +01:00
Andrew Talbot
82a042d0df
rpcrt4/tests: Cast-qual warnings fix.
2006-12-14 12:51:10 +01:00
Marcus Meissner
f0280cbd1e
made functions and variables static in some testcases.
2006-12-11 12:18:29 +01:00
Francois Gouget
bb8e625b5b
Assorted spelling fixes.
2006-12-05 10:31:47 +01:00
Rob Shearman
06dd3efe2f
rpcrt4: RPC_C_AUTHN_LEVEL_NONE and RPC_C_AUTHN_LEVEL_DEFAULT are
...
handled at the binding level now instead of the message level, so
remove this special handling in RPCRT4_Send.
2006-11-22 11:37:15 +01:00
Rob Shearman
20c53a77e2
rpcrt4: Allow applications to specify authentication levels other than connect in RpcBindingSetAuthInfoA/W.
...
Map the default authentication level and service to sane values.
Don't create an RpcAuthInfo object if RPC_C_AUTHN_LEVEL_NONE is specified.
2006-11-22 11:37:08 +01:00
Rob Shearman
8bb10f1082
rpcrt4: Use SecInvalidateHandle and SecIsValidHandle for handling RpcConnection::ctx instead of setting/comparing the field to 0.
2006-11-15 11:25:57 +01:00
Rob Shearman
51dd6f9fb8
rpcrt4: Add support for signing, verifying, encrypting and decrypting RPC packets.
2006-11-15 11:25:53 +01:00
Rob Shearman
8e178b2d4f
rpcrt4: Fix a crash in RPCRT4_OpenBinding that can occur if
...
RPCRT4_CreateConnection fails by checking the return value from the
function and returning in this case.
2006-11-15 11:25:44 +01:00
Rob Shearman
079b6b074c
rpcrt4: Add a FIXME for unsupported client protocol sequences.
2006-11-15 11:25:35 +01:00
Rob Shearman
29a9abff8a
rpcrt4: Implement RpcServerUnregisterIf.
2006-11-13 14:32:41 +01:00
Rob Shearman
0b1cc1061b
rpcrt4: Convert the server interfaces list into a standard Wine list.
2006-11-13 14:32:24 +01:00
Rob Shearman
59a90143bf
rpcrt4: Fix a comment and move a WARN to where it really indicates a problem, rather than falsely triggering on normal conditions.
2006-11-13 14:32:21 +01:00
Francois Gouget
b2656633a6
Add some documentation headers to make winapi_check happy.
2006-11-13 13:01:15 +01:00
Francois Gouget
5962cf6e4f
rpcrt4: Add some stub documentation headers to make winapi_check happy.
...
Also fix some headers that identified internal APIs as external.
2006-11-13 13:00:53 +01:00
Andrew Talbot
fcb5bc6a1f
rpcrt4: Cast-qual warnings fix.
2006-11-13 12:47:00 +01:00
Andrew Talbot
b011a4eecd
rpcrt4: Cast-qual warnings fix.
2006-11-13 12:46:53 +01:00
Alexandre Julliard
e9d5e5503f
rpcrt4: Avoid a sizeof in a trace.
2006-11-10 14:29:55 +01:00
Rob Shearman
61967ff4be
rpcrt4: Create one protseq object per used protocol sequence, not per RpcServerUseProtseq* function call.
2006-11-10 13:50:17 +01:00
Rob Shearman
e1561038d0
rpcrt4: Don't store the endpoint in the protseq.
2006-11-10 13:50:12 +01:00
Rob Shearman
e0acc8d276
rpcrt4: Fix a crash in RpcServerUseProtseqEpExA/W when using an unsupported protseq.
2006-11-10 13:50:07 +01:00
Rob Shearman
44922d29db
rpcrt4: Correctly align the results in the RPC Bind Ack packet.
2006-11-10 13:50:03 +01:00
Michael Stefaniuc
de21efbadd
rpcrt4: Win64 printf format warning fixes.
2006-11-10 11:31:59 +01:00
Michael Stefaniuc
718f3c3505
rpcrt4: More "unsigned long" to "ULONG" changes in preparation of the removal of WINE_NO_LONG_AS_INT.
2006-11-10 11:31:45 +01:00
Michael Stefaniuc
32ec528405
rpcrt4: Bring the function definitions in sync with their declaration.
...
They got out of sync due to the unsigned long to ULONG changes in the headers.
2006-11-10 11:31:37 +01:00
Michael Stefaniuc
0628fb5098
rpcrt4/ndr_marshall.c: Bring the function definitions in sync with their declaration.
...
Those got out of sync due to the unsigned long to ULONG migration in the headers.
2006-11-10 11:31:26 +01:00
Alexandre Julliard
c0f9d369dc
rpcrt4/tests: Replace || by |.
2006-11-09 18:20:49 +01:00
Michael Stefaniuc
6bf97313bc
rpcrt4/tests: Fix the warnings introduced by the "unsigned long" to "ULONG" header changes.
2006-11-09 10:43:45 +01:00
Rob Shearman
0345a578b5
rpcrt4: For TCP endpoints, bind to all the address and ports that getaddrinfo for the machine.
2006-11-09 10:37:29 +01:00
Rob Shearman
034eaa1cad
rpcrt4: Use MaxCalls from the protseq when determining the backlog length to pass in to listen.
2006-11-09 10:37:15 +01:00
Rob Shearman
34577de406
rpcrt4: The error code RPC_S_SERVER_UNAVAILABLE doesn't make much sense on the server side
...
so replace it with some more appropriate endpoint error codes.
2006-11-09 10:37:07 +01:00
Rob Shearman
8b6c30ab4b
rpcrt4: Open the endpoint from the caller of RpcServerUseProtseq* instead of the protseq server thread.
...
This allows errors to be returned to the caller and to create more than
one connection for an endpoint.
2006-11-09 10:36:47 +01:00
Michael Stefaniuc
e9ae478c14
rpcproxy.h: Use LONG/ULONG for Win64 compatibility instead of long and unsigned long.
2006-11-08 15:51:25 +01:00
Michael Stefaniuc
4e2b462d4f
rpcrt4: For Win64 compatibility use a temp variable of the right type in ComputeVariance().
2006-11-08 15:51:22 +01:00
Francois Gouget
ea483682c5
secur32: sspi.h must not include wtypes.h.
2006-11-08 12:11:00 +01:00
Rob Shearman
3acc624219
rpcrt4: Remove unnecessary quotes in traces, as debugstr_a and debugstr_w add them instead.
2006-11-06 12:27:21 +01:00
Rob Shearman
85e28ae33d
rpcrt4: Set the AI_PASSIVE flag to getaddrinfo in rpcrt4_ip_tcp_open so that the bound-to port is connectable from other machines.
2006-10-31 21:42:32 +01:00
Rob Shearman
3ed6a201c2
rpcrt4: Improve the debug messages for failures in rpcrt4_ip_tcp_open.
2006-10-31 21:42:25 +01:00
Rob Shearman
828c733f72
rpcrt4: Set the socket back to blocking in rpcrt4_conn_tcp_handoff as
...
the read and write function for the protseq assume that syscalls will block.
2006-10-31 21:42:17 +01:00
Rob Shearman
e2e05d0493
rpcrt4: Fix a typo in rpcrt4_ip_tcp_open that would cause the function
...
to go into an infinite loop if getaddrinfo returned more than one entry.
2006-10-31 21:41:38 +01:00
Rob Shearman
593d0fbac0
rpcrt4: Convert the named pipe server code to look directly into the
...
connection to get at the wait handles, instead of using
get_connect_wait_handle which isn't generic enough to be used for
other protocols.
Remove the unneeded get_connect_wait_handle function from the connection
operations function list.
2006-10-31 21:41:29 +01:00
Rob Shearman
7553a8990c
rpcrt4: Eliminate the extra thread used for RPC over TCP/IP servers by adding socket-specific server protseq functions.
2006-10-31 21:41:07 +01:00
Rob Shearman
709b536f0c
rpcrt4: The allocation hint in request and response packets is just that - a hint.
...
It is not an error if the stub data exceeds this size, so reallocate the
buffer with the newly calculated size and continue.
2006-10-27 12:00:22 +02:00
Rob Shearman
fbe829cbb1
rpcrt4: Don't terminate the loop on the buffer becoming filled, but when we receive a packet with the RPC_FLG_LAST flag set.
...
This matches what is mentioned in the DCE/RPC specification.
2006-10-27 12:00:12 +02:00
Rob Shearman
28d3bd3e42
rpcrt4: Fix RPCRT4_Receive to accept authentication verifier data on any packets, not just bind packets.
2006-10-27 12:00:05 +02:00
Rob Shearman
c3918d9be4
rpcrt4: Move transport-specific server functions to rpc_transport.c.
2006-10-25 20:21:41 +02:00
Damjan Jovanovic
48ca62185b
rpcrt4: Added support for RPC TCP servers.
2006-10-20 14:46:55 +02:00
Robert Shearman
2f6e643d56
rpcrt4: Add a critical section to protect the connection list in each
...
protseq to avoid taking the process-wide server_cs in the hot path for
each protocol.
2006-10-16 19:58:17 +02:00
Robert Shearman
9ea03d7077
rpcrt4: Convert the protseq list into a standard Wine list.
2006-10-16 19:57:01 +02:00
Robert Shearman
1ceeb058e3
rpcrt4: Abstract out the way incoming connections are waited for so that we no longer need to wait on Win32 handles.
2006-10-16 19:56:38 +02:00
Robert Shearman
92c3979433
rpcrt4: Rename protseq_ops to connection_ops to reflect the fact that
...
the functions operate on an RpcConnection object, not an
RpcServerProtseq object.
2006-10-16 19:55:37 +02:00
Robert Shearman
e906424178
rpcrt4: Create a server thread for each protseq.
2006-10-16 19:44:42 +02:00
Michael Stefaniuc
56b87f3a0f
janitorial: Remove redundant NULL checks before calling HeapFree wrappers.
2006-10-16 10:52:48 +02:00
Francois Gouget
4794dc0e38
rpcrt4: Add RPC_CSTR, RPC_WSTR and update the prototypes accordingly.
2006-10-13 11:54:58 +02:00
Ge van Geldorp
d642e11438
winapi_test: Regenerate tests.
...
Remove structs from test list which have preprocessor directives in
their definitions (winapi_test can't handle that).
2006-10-11 12:12:21 +02:00
Michael Stefaniuc
14c551bc3a
rpcrt4/tests: Win64 printf format warning fixes.
2006-10-09 12:44:16 +02:00
Francois Gouget
82babbee0b
Add missing '\n's to Wine traces.
2006-10-05 17:46:48 +02:00
Robert Shearman
2324aeec33
rpcrt4: Use I_Rpc{Allocate, Free} instead of Heap{Alloc, Free} as that
...
the former are exported by rpcrt4 seemingly to allow callers of tower
functions to free the allocated memory.
2006-10-03 16:14:57 +02:00
Robert Shearman
7dab87e2e9
rpcrt4: RpcBindingCopy is implemented.
2006-10-03 16:14:49 +02:00
Robert Shearman
b9423076ba
rpcrt4: Don't use HEAP_ZERO_MEMORY when most of the fields will be initialised to non-zero values.
2006-10-03 16:14:47 +02:00
Francois Gouget
1011bc47bf
rpcrt4: Don't return void values. This fixes Visual C++ warnings.
2006-10-02 11:54:43 +02:00
Francois Gouget
68e84a7a53
Add missing '\n's to ok() calls.
2006-09-29 17:53:39 +02:00
Michael Stefaniuc
85ce5117c5
Add a WINE_NO_LONG_INT define to many makefiles to ease the transition of DWORD/LONG/ULONG from long to int.
2006-09-29 16:08:30 +02:00
Thomas Weidenmueller
bc0f9c49b0
rpcrt4: Fix RpcMgmtSetServerStackSize prototype.
2006-09-28 14:03:50 +02:00
Andrew Talbot
8221beb225
rpcrt4: Cast-qual warnings fix.
2006-09-26 11:40:52 +02:00
Andrew Talbot
3f123e51bf
rpcrt4: Cast-qual warnings fix.
2006-09-26 11:40:47 +02:00
Andrew Talbot
269f77d872
rpcrt4: Cast-qual warnings fix.
2006-09-26 11:40:41 +02:00
Andrew Talbot
7147f79153
rpcrt4: Cast-qual warnings fix.
2006-09-26 11:40:33 +02:00
Alexandre Julliard
32ab895e46
makefiles: Generate the dependencies line to avoid some code duplication.
2006-09-14 09:38:16 +02:00
Francois Gouget
06f9532dda
Assorted spelling fixes.
2006-09-08 11:04:53 +02:00
Robert Shearman
a6e545a27c
rpcrt4: Raise an exception if IRpcChannelBuffer_GetBuffer fails.
...
Make StdProxy_GetIID and StdProxy_GetChannel return void.
Don't bother checking for This and pRpcChannelBuffer being NULL as
native doesn't.
2006-09-07 11:42:05 +02:00
Huw Davies
bd9891ffed
rpcrt4: Add delegating stub support.
2006-09-07 10:57:39 +02:00
Huw Davies
b058e6e729
rpcrt4: Add infrastructure to create and manage a variable sized vtbl
...
that will be used as the server object for delegated stubs.
2006-09-07 10:57:27 +02:00
Huw Davies
9b91307677
rpcrt4: Tests on NdrCStdStubBuffer_Release to show that we shouldn't call Disconnect.
...
Also call IPSFactoryBuffer_Release on the 2nd arg, rather than on This->pPSFactory.
2006-09-07 10:24:54 +02:00
Huw Davies
86aa95fd2b
rpcrt4: Tidy up CStdStubBuffer_QueryInterface.
2006-09-07 10:23:00 +02:00
Huw Davies
dffd3e5034
rpcrt4: Tidy up CStdStubBuffer_AddRef,Release.
2006-09-07 10:22:35 +02:00
Robert Shearman
ada61620de
rpcrt4: Make the reference counting in the standard proxy thread-safe.
2006-09-07 10:19:38 +02:00
Robert Shearman
3e01da1838
rpcrt4: Fix NdrStubGetBuffer to use the IRpcChannelBuffer object since
...
IRpcChannelBuffer_GetBuffer may put extra data onto the wire for ORPC
calls.
2006-09-07 10:18:52 +02:00
Robert Shearman
3535b70a0b
rpcrt4: Remove some unused code.
2006-09-07 10:18:48 +02:00
Robert Shearman
5515633517
rpcrt4: Rename ndr_midl.c to ndr_clientserver.c to more accurately
...
idenitfy what the code contained does - it is a number of helpers for
generated client/server code.
2006-09-07 10:18:31 +02:00
Robert Shearman
583ae12233
rpcrt4: Move NdrStub* functions to cstub.c and move NdrProxy*
...
functions to cproxy.c since both sets of functions depend on the
implementations of the standard stubs and proxies.
2006-09-07 10:17:28 +02:00
Huw Davies
d28698dd73
rpcrt4: Add a test for IRpcStubBuffer_Connect on a delegated stub.
...
This shows that we have a vtbl ptr at (void**)This-2 that is passed to
the base interface's IRpcStubBuffer_Connect. This vtbl should
presumably forward calls to the real object's vtbl. We can't simply
pass the real object to the base interface's stub, as the real
object's QI may not provide us with the base interface.
2006-08-29 12:26:31 +02:00
Huw Davies
161f60071e
rpcrt4: Add a helper function to create a stub.
2006-08-29 12:26:22 +02:00
Alexandre Julliard
5cf75e615a
makefiles: Only run test and documentation targets in directories that need them.
2006-08-28 13:37:44 +02:00
Huw Davies
487c691dc5
rpcrt4: Tests for CStdStubBuffer_Disconnect and a tidy up of the implementation.
2006-08-23 20:10:36 +02:00
Huw Davies
f42f727f7c
rpcrt4: Tests for CStdStubBuffer_Connect and fixes to make them pass.
2006-08-23 20:10:15 +02:00
Huw Davies
cadc39842b
rpcrt4: Add tests for CreateStub and fix up CStdStubBuffer_Construct to match.
2006-08-23 20:10:06 +02:00
Huw Davies
6a0fccd3a9
rpcrt4: Add tests for NdrStubForwardingFunction and write a commented out implementation.
...
This shows that the IRpcStubBuffer for a delegated stub's base
interface is stored at (void**)This-1.
2006-08-23 20:09:52 +02:00
Huw Davies
a5dcb3e39d
rpcrt4: Tests for NdrDllGetClassObject.
...
These show that delegated stubs need different Connect, Disconnect and
CountRefs methods than non-delegated stubs (ie they don't use all of
the CStdStubBuffer_* functions).
2006-08-23 20:09:04 +02:00
Stefan Huehner
998e256c82
Fix some -Wstrict-prototype warnings () -> (void).
2006-08-21 12:06:26 +02:00
Huw Davies
59be6e0600
rpcrt4: Remember to skip over the conformance description.
2006-08-18 11:34:26 +02:00
Huw Davies
d9b6672530
rpcrt4: Add tests for NdrAllocate.
2006-08-17 11:19:17 +02:00
Robert Shearman
4bbc3ca8dc
rpcrt4: Move processing of the arguments from NdrClientCall2 to two new functions.
2006-08-16 16:41:42 +02:00
Robert Shearman
68e867da81
rpcrt4: Forward NdrClientCall to NdrClientCall2.
...
NdrClientCall should be implemented as a separate function when
NdrClientCall2 has been factorised enough.
2006-08-09 20:41:34 +02:00
Robert Shearman
f953cc406a
rpcrt4: Add some more traces and make the stack offsets easier to read in the stubless interpreter.
2006-08-09 20:41:21 +02:00
Robert Shearman
88bbbed176
rpcrt4: Change call_memory_sizer to preserve the buffer contents and
...
initialise the memory size field to zero before calling the memory
sizer function.
2006-08-09 20:41:13 +02:00
Robert Shearman
d29108c396
rpcrt4: Set retval_ptr and allocate memory for out pointers for the old format stubless intepreter.
2006-08-09 20:41:01 +02:00
Robert Shearman
3db5f872a0
rpcrt4: Support fixed arrays in calc_arg_size.
2006-08-09 20:40:40 +02:00
Robert Shearman
e26bcb7fb2
rpcrt4: Complex types should be dereferenced an extra time in the old format stubless code.
2006-08-09 20:40:30 +02:00
Robert Shearman
64828b7520
rpcrt4: Fix the stack offset for the old format stubless code when an object's method is being called.
2006-08-09 20:40:25 +02:00
Robert Shearman
488c0a0423
rpcrt4: Make the error output on a failed binding more informative
...
by dumping information about the interface it is trying to bind to.
2006-08-04 20:27:13 +02:00
Phil Lodwick
dd000074fe
rpcrt4: Support for SMVARRAY in EmbeddedComplexSize.
2006-07-25 11:31:59 +02:00
Robert Shearman
5700fe8a61
rpcrt4: Set BufferMark before calling EmbeddedPointerMarshall, EmbeddedPointerUnmarshall or EmbeddedPointerMemorySize.
2006-07-24 13:47:40 +02:00
Robert Shearman
ba9158e2e1
rpcrt4: Improve the stubs for RpcImpersonateClient and RpcRevertToSelf.
2006-07-24 13:47:36 +02:00
Robert Shearman
a8531067c4
rpcrt4: Support small fixed arrays in EmbeddedComplexSize.
2006-07-24 13:47:31 +02:00
Robert Shearman
4c4fc14fe9
rpcrt4: Allocate memory based on MaxCount, not ActualCount in NdrConformantStringUnmarshall.
2006-07-24 13:47:25 +02:00
Robert Shearman
98c26a81fe
rpcrt4: Add support for marshaling the FC_HYPER base type in complex types.
...
Change the FIXME messages to print out unrecognised format characters in
hex rather than decimal.
2006-07-24 13:47:13 +02:00
Robert Shearman
d2cb9ec567
rpcrt4: Display a big message box if the user tries to use typelib
...
marshaling in native oleaut32 with builtin rpcrt4 to tell them what is
wrong.
2006-07-18 11:13:36 +02:00
Robert Shearman
9318cb0fbc
rpcrt4: Handle more structure padding values.
2006-07-18 11:12:47 +02:00
Robert Shearman
2cb3b22c26
rpcrt4: Fix Variance Callback Functions.
...
A callback function for computing the variance puts the computed value
into the same field as a conformance, so make sure to copy the value
into pCount before returning from ComputeConformanceOrVariance.
2006-07-14 12:38:53 +02:00
Robert Shearman
a02034a609
rpcrt4: Add the threading model and a description when registering a CLSID for the PSFactoryBuffer.
2006-07-14 12:38:48 +02:00
Robert Shearman
2538490d0b
rpcrt4: Add a stub for I_RpcMapWin32Status.
2006-07-13 16:25:33 +02:00
Alexandre Julliard
eb8a40c368
libs: Merged libwine_unicode into libwine.
...
Most dlls use libwine_unicode at this point, so there's nothing to
gain by having two separate libraries.
2006-07-11 19:33:22 +02:00
Alexandre Julliard
0fa8baafcb
make_dlls: Recursively ignore .ok files in all tests directories.
2006-07-10 21:26:50 +02:00
Alexandre Julliard
edd100b899
make_dlls: Recursively ignore testlist.c in all tests directories.
2006-07-10 21:19:42 +02:00
Alexandre Julliard
5258e061dc
make_dlls: Ignore generated import libraries from the top-level .gitignore.
2006-07-10 20:55:58 +02:00
Alexandre Julliard
cc2b3b48e6
Take advantage of the recursive nature of .gitignore for Makefile entries.
...
Prefix other entries with '/' to make them non-recursive.
2006-07-10 20:47:54 +02:00
Michael Stefaniuc
00e779370f
janitorial: Put "inline static" at the beginning of a declaration.
2006-07-07 14:30:35 +02:00
Huw Davies
85ed9a5905
rpcrt4: Don't advance the buffer for FC_STRUCTPAD2.
2006-07-05 11:44:19 +02:00
Robert Shearman
e7df38c27f
rpcrt4: Add a stub for RpcMgmtSetServerStackSize.
2006-06-30 20:43:53 +02:00
Huw Davies
93fb9d10f5
rpcrt4: Calculate size of FC_STRUCT arguments correctly.
2006-06-26 12:36:10 +02:00
Robert Shearman
7d92b89abf
rpcrt4: Stubs for RpcRevertToSelf and RpcMgmtSetComTimeout.
2006-06-21 13:39:52 +02:00
Robert Shearman
45d42528a0
rpcrt4: Add stub for RpcMgmtEnableIdleCleanup.
2006-06-21 13:39:38 +02:00
Huw Davies
3a56eca1c7
rpcrt4: Don't use a short to hold the packet length, since it can
...
result in premature termination of the send.
2006-06-20 20:35:38 +02:00
Robert Shearman
0da8836ff7
rpcrt4: Move the packet manipulation from the exception filter to the exception handler.
...
Remove the unused server_sem variable.
2006-06-19 23:04:19 +02:00
Robert Shearman
1437f8bd8c
rpcrt4: Use the thread pool in the RPC server for processing packets.
2006-06-19 10:28:50 +02:00
Huw Davies
26c2953e58
rpcrt4: Fix the argument size of conformant arrays.
2006-06-16 14:42:36 +02:00
Robert Shearman
b3c04e032d
rpcrt4: getaddrinfo returns any non-zero value on failure, not just negative values.
2006-06-14 12:47:05 +02:00
Alexandre Julliard
2a91838f0c
rpcrt4: Don't use sizeof in traces to avoid printf format warnings.
2006-06-13 14:11:28 +02:00
Alexandre Julliard
d90f68166c
rpcrt4/tests: Don't use sizeof in ok() to avoid printf format warnings.
2006-06-13 14:03:44 +02:00
Robert Shearman
1c04d9ab20
rpcrt4: Add an exception handler for CStdStubBuffer_Invoke.
...
This is needed because IRpcStubBuffer::Invoke should not allow RPC
exceptions to be passed to the caller.
2006-06-12 13:21:46 +02:00
Robert Shearman
35982d72f5
rpcrt4: Initialise pStubMsg->MemorySize to zero before calling
...
ComplexStructMemorySize from NdrComplexArrayUnmarshall.
2006-06-12 13:21:46 +02:00
Robert Shearman
539b48bff4
rpcrt4: Use safe_mutiply in conformant array functions.
2006-06-12 13:21:46 +02:00
Robert Shearman
8dea3c2aa8
rpcrt4: Pass in a maximum variance value to ReadVariance to allow us
...
to validate the conformance values being read from the wire.
2006-06-12 13:21:46 +02:00
Robert Shearman
613ee6d01c
rpcrt4: Check that strings are null-terminated on unmarshaling of conformant-varying structs.
2006-06-12 13:21:46 +02:00
Robert Shearman
a946eb420b
rpcrt4: Use safe_multiply when multiplying anything by pStubMsg->ActualCount or pStubMsg->MaxCount.
2006-06-12 13:21:46 +02:00
Robert Shearman
cec6092aa2
rpcrt4: Raise an exception during unmarshaling if a conformant string isn't null-terminated.
2006-06-12 13:21:46 +02:00
Robert Shearman
6e95bfe85a
rpcrt4: Introduce a new function, safe_multiply, which will raise an
...
exception if a multiply overflows a 4-byte integer.
This will protect the unmarshaling code against attacks specifying a
large variance.
Use this new function in the conformant string functions to harden them
against attack.
2006-06-12 13:20:30 +02:00
Robert Shearman
d98b73a17a
rpcrt4: Clear an object pointer during unmarshaling, otherwise we
...
could end up using the previously allocated memory even if it isn't
the right size, causing heap corruption.
2006-06-09 21:07:57 +02:00
Robert Shearman
578df90d6d
rpcrt4: Initialise pStubMsg->MemorySize to zero before calling ComplexStructMemorySize from NdrComplexArrayUnmarshall.
2006-06-09 21:07:44 +02:00
Robert Shearman
e3df112a39
rpcrt4: Don't raise an exception if there is no freer function - not all types have a freer.
2006-06-09 21:07:37 +02:00
Robert Shearman
21673d03f9
rpcrt4: Implement more base types for complex types.
2006-06-09 21:07:22 +02:00
Robert Shearman
0b1e51ca25
rpcrt4: Now that there's a process-wide pool of connections we don't
...
need to copy the FromConn field when copying bindings.
2006-06-09 21:07:11 +02:00
Robert Shearman
56386bd88c
rpcrt4: Return the status received from RPCRT4_Send in I_RpcSend instead of always returning RPC_S_OK.
2006-06-09 21:07:02 +02:00
Alexandre Julliard
c32dc6744c
rpcrt4: Make the protseq_ops structure constant.
2006-06-09 13:12:58 +02:00
Alexandre Julliard
c0fcba798b
rpcrt4: Avoid potential redefinition of uuid_t.
2006-06-08 11:29:26 +02:00
Robert Shearman
58ec282bfb
rpcrt4: Implement a process-wide connection pool for client connections,
...
rather than relying on the restriction of one connection per
binding. This also avoids the problem of two threads using the same
connection at the same time.
2006-06-08 10:16:00 +02:00