ctdb-common: Map ENOENT for a missing event script to ENOEXEC
[samba.git] / source3 / librpc / idl / rpc_host.idl
blob9eb48d3eaa8af04e5cc81213b6282c51d1b76c6c
1 /**
2 * @file rpc_host.idl
4 * Definitions for communication between samba-dcerpcd and rpc helper
5 * daemons
6 */
7 #include "idl_types.h"
9 import "named_pipe_auth.idl";
10 import "dcerpc.idl";
13 pointer_default(unique)
16 interface rpc_host_msg
18 /**
19 * @brief MSG_RPC_HOST_NEW_CLIENT: samba-dcerpcd->rpcd
21 * samba-dcerpcd to rpcd msg announcing a new client. This
22 * will carry a file descriptor representing the new
23 * connection
25 typedef [public] struct {
26 /**
27 * @brief The binding the client wants to connect to
29 [string,charset(UTF8)] char *binding;
31 /**
32 * @brief Auth info inherited from SMB
34 named_pipe_auth_req_info8 *npa_info8;
36 /**
37 * @brief Raw bind PDU
39 * Already read from the socket by samba-dcerpcd
41 DATA_BLOB bind_packet;
42 } rpc_host_client;
44 /**
45 * @brief MSG_RPC_WORKER_STATUS: rpcd->samba-dcerpcd
47 * Once a client has been handed over from samba-dcerpcd to an
48 * rpcd, samba-dcerpc has no control over this socket
49 * anymore. So it can't know when the client exits and the
50 * rpcd helper process has a slot free. Thus whenever a client
51 * exits, rpcd sends this message up to samba-dcerpc for a
52 * status update.
54 typedef [flag(NDR_NOALIGN),public] struct {
55 /**
56 * @brief Which rpc service is this message from
58 * samba-dcerpcd will only have the source pid of this
59 * message. To avoid a walk through all arrays with
60 * all rpcd helpers, give samba-dcerpcd a hint where
61 * in its arrays to find the rpcd that sent this
62 * message.
64 uint32 server_index;
66 /**
67 * @brief Which of the processes of a helper prog is this from
69 * @note while this is uint32, we currently only support 16-bit
70 * values, as we use it in the high 16-bits of the 32-bit
71 * association group id.
73 uint32 worker_index;
76 /**
77 * @brief How many association groups this process serves right now
79 * @note while this is uint32, we currently only support 16-bit
80 * values, as we use the worker_index in the high 16-bits of
81 * so we only have 16-bit per worker in order to form the 32-bit
82 * association group id.
84 uint32 num_association_groups;
86 /**
87 * @brief How many client connections this process serves right now
89 * @note might be greater or equal to num_association_groups.
91 uint32 num_connections;
92 } rpc_worker_status;