summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-04-07 21:02:55 +0200
committerStefan Metzmacher <metze@samba.org>2009-04-10 19:38:30 +0200
commit225a4f7cc2b83bb84ca4022eaf9b0d92d35c3d80 (patch)
tree719bc252f6efe50a5a1199810e9e59a7cbf8d6f3
parentf20f5ae8e6b9ca5c90441a3083f6904168388fdf (diff)
downloadsamba-225a4f7cc2b83bb84ca4022eaf9b0d92d35c3d80.tar.gz
samba-225a4f7cc2b83bb84ca4022eaf9b0d92d35c3d80.tar.bz2
samba-225a4f7cc2b83bb84ca4022eaf9b0d92d35c3d80.zip
s4:rpc_server: report available output for all replies
metze
-rw-r--r--source4/rpc_server/dcerpc_server.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c
index d7bd7601f7..67edb62b4f 100644
--- a/source4/rpc_server/dcerpc_server.c
+++ b/source4/rpc_server/dcerpc_server.c
@@ -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;
}