]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:rpc_server: report available output for all replies
authorStefan Metzmacher <metze@samba.org>
Tue, 7 Apr 2009 19:02:55 +0000 (21:02 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 10 Apr 2009 17:38:30 +0000 (19:38 +0200)
metze

source4/rpc_server/dcerpc_server.c

index d7bd7601f7c9ece8057f83a78668beb6cbbedf88..67edb62b4f9c14dc5992dc0cf255a8ef30efb954 100644 (file)
@@ -467,6 +467,12 @@ static NTSTATUS dcesrv_fault(struct dcesrv_call_state *call, uint32_t fault_code
        DLIST_ADD_END(call->replies, rep, struct data_blob_list_item *);
        dcesrv_call_set_list(call, DCESRV_LIST_CALL_LIST);
 
+       if (call->conn->call_list && call->conn->call_list->replies) {
+               if (call->conn->transport.report_output_data) {
+                       call->conn->transport.report_output_data(call->conn);
+               }
+       }
+
        return NT_STATUS_OK;    
 }
 
@@ -506,6 +512,12 @@ static NTSTATUS dcesrv_bind_nak(struct dcesrv_call_state *call, uint32_t reason)
        DLIST_ADD_END(call->replies, rep, struct data_blob_list_item *);
        dcesrv_call_set_list(call, DCESRV_LIST_CALL_LIST);
 
+       if (call->conn->call_list && call->conn->call_list->replies) {
+               if (call->conn->transport.report_output_data) {
+                       call->conn->transport.report_output_data(call->conn);
+               }
+       }
+
        return NT_STATUS_OK;    
 }
 
@@ -706,6 +718,12 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
        DLIST_ADD_END(call->replies, rep, struct data_blob_list_item *);
        dcesrv_call_set_list(call, DCESRV_LIST_CALL_LIST);
 
+       if (call->conn->call_list && call->conn->call_list->replies) {
+               if (call->conn->transport.report_output_data) {
+                       call->conn->transport.report_output_data(call->conn);
+               }
+       }
+
        return NT_STATUS_OK;
 }
 
@@ -877,6 +895,12 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call)
        DLIST_ADD_END(call->replies, rep, struct data_blob_list_item *);
        dcesrv_call_set_list(call, DCESRV_LIST_CALL_LIST);
 
+       if (call->conn->call_list && call->conn->call_list->replies) {
+               if (call->conn->transport.report_output_data) {
+                       call->conn->transport.report_output_data(call->conn);
+               }
+       }
+
        return NT_STATUS_OK;
 }