Age | Commit message (Collapse) | Author | Files | Lines |
|
generate a separate *_send() async function for every RPC call, and
there is a single dcerpc_ndr_request_recv() call that processes the
receive side of any rpc call. The caller can use
dcerpc_event_context() to get a pointer to the event context for the
pipe so that events can be waited for asynchronously.
The only part that remains synchronous is the initial bind
calls. These could also be made async if necessary, although I suspect
most applications won't need them to be.
(This used to be commit f5d004d8eb8c76c03342cace1976b27266cfa1f0)
|
|
Up to now the client code has had an async API, and operated
asynchronously at the packet level, but was not truly async in that it
assumed that it could always write to the socket and when a partial
packet came in that it could block waiting for the rest of the packet.
This change makes the SMB client library full async, by adding a
separate outgoing packet queue, using non-blocking socket IO and
having a input buffer that can fill asynchonously until the full
packet has arrived.
The main complexity was in dealing with the events structure when
using the CIFS proxy backend. In that case the same events structure
needs to be used in both the client library and the main smbd server,
so that when the client library is waiting for a reply that the main
server keeps processing packets. This required some changes in the
events library code.
Next step is to make the generated rpc client code use these new
capabilities.
(This used to be commit 96bf4da3edc4d64b0f58ef520269f3b385b8da02)
|
|
this fixes a crash bug in smbd with multiple RPC clients
(This used to be commit 6e102f732e4404fc5f9b2851d12b00d2d083b43d)
|
|
metze
(This used to be commit af6f1f8a01bebbecd99bc8c066519e89966e65e3)
|
|
metze
(This used to be commit 61ec710518469876ccc48d57b5fee5d6ead3d482)
|
|
- fix the case when we have no fd_events left on the event_context
we now exit after doing the timed events and not block in select()
waiting for no fd's to become ready...
metze
(This used to be commit 857e76ef6b891c199534db6ce229410340286461)
|
|
structure
and NULL on allacation error.
metze
(This used to be commit fffc6cfb6b9946155d209dd14faa79c5b9d43d1d)
|
|
* change to select() from sys_select() in events.c, as sys_select() is
not thread safe. We need a new unified signal handling scheme for
Samba4, but for now just use select()
(This used to be commit 126fcd4a76ac029ee4f662ed41b84c791406c324)
|
|
(This used to be commit b0510b5428b3461aeb9bbe3cc95f62fc73e2b97f)
|