s4:rpc_server: add wait_send/recv infrastructure
[nivanova/samba-autobuild/.git] / source4 / rpc_server / dcerpc_server.h
index a6772f94f620d989650ba38c3289da1e8f34a39f..c038075e0ddcc129f883f69c0ddb072631cc243d 100644 (file)
@@ -92,6 +92,11 @@ struct dcesrv_call_state {
        struct dcesrv_connection_context *context;
        struct ncacn_packet pkt;
 
+       /*
+        * Used during async bind/alter_context.
+        */
+       struct ncacn_packet ack_pkt;
+
        /*
          which list this request is in, if any
         */
@@ -283,6 +288,16 @@ struct dcesrv_connection {
 
        /* the negotiated bind time features */
        uint16_t bind_time_features;
+
+       /*
+        * This is used to block the connection during
+        * pending authentication.
+        */
+       struct tevent_req *(*wait_send)(TALLOC_CTX *mem_ctx,
+                                       struct tevent_context *ev,
+                                       void *private_data);
+       NTSTATUS (*wait_recv)(struct tevent_req *req);
+       void *wait_private;
 };
 
 
@@ -347,6 +362,12 @@ struct dcesrv_context {
                        struct dcesrv_if_list *next, *prev;
                        struct dcesrv_interface iface;
                } *interface_list;
+
+               /*
+                * Should this service be run in a single process (so far only
+                * NETLOGON is not run in a single process)
+                */
+               bool use_single_process;
        } *endpoint_list;
 
        /* loadparm context to use for this connection */
@@ -399,9 +420,7 @@ struct dcesrv_handle *dcesrv_handle_fetch(
                                          struct dcesrv_connection_context *context, 
                                          struct policy_handle *p,
                                          uint8_t handle_type);
-struct socket_address *dcesrv_connection_get_my_addr(struct dcesrv_connection *conn, TALLOC_CTX *mem_ctx);
 
-struct socket_address *dcesrv_connection_get_peer_addr(struct dcesrv_connection *conn, TALLOC_CTX *mem_ctx);
 const struct tsocket_address *dcesrv_connection_get_local_address(struct dcesrv_connection *conn);
 const struct tsocket_address *dcesrv_connection_get_remote_address(struct dcesrv_connection *conn);