-sub ParseFunction_Compat_Sync($$$$)
-{
- my ($self, $if, $fn, $name) = @_;
- my $uname = uc $name;
-
- my $proto = "NTSTATUS dcerpc_$name\_compat(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct $name *r)";
-
- $self->pidl_hdr("#ifdef DCERPC_CALL_$uname\_COMPAT");
- $self->pidl_hdr("#define dcerpc_$name(p, m, r) dcerpc_$name\_compat(p, m, r)");
- $self->pidl_hdr("#endif /* DCERPC_CALL_$uname\_COMPAT */");
-
- $self->fn_declare($proto);
- $self->pidl("{");
- $self->indent;
- $self->pidl("NTSTATUS status;");
- $self->pidl("");
-
- $self->pidl("status = dcerpc_$name\_r(p->binding_handle, mem_ctx, r);");
- $self->pidl("");
-
- $self->pidl("if (NT_STATUS_IS_RPC(status)) {");
- $self->indent;
- $self->pidl("status = NT_STATUS_NET_WRITE_FAULT;");
- $self->deindent;
- $self->pidl("}");
- $self->pidl("");
-
- if (defined($fn->{RETURN_TYPE}) and $fn->{RETURN_TYPE} eq "NTSTATUS") {
- $self->pidl("if (NT_STATUS_IS_OK(status)) {");
- $self->indent;
- $self->pidl("status = r->out.result;");
- $self->deindent;
- $self->pidl("}");
- $self->pidl("");
- }
-
- $self->pidl("return status;");
-
- $self->deindent;
- $self->pidl("}");
- $self->pidl("");
-}
-