mirror of
https://github.com/samba-team/samba.git
synced 2025-02-15 05:57:49 +03:00
r26110: Create separate function for connecting, add helper for creating result typemaps.
This commit is contained in:
parent
3e04846b3f
commit
9b5b77c399
@ -36,6 +36,22 @@ sub IgnoreInterface($$)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub GenerateResultTypemap($)
|
||||||
|
{
|
||||||
|
my $name = shift;
|
||||||
|
pidl "%typemap(in,numinputs=0) $name*result ($name tmp) {";
|
||||||
|
indent;
|
||||||
|
pidl "\$1 = &tmp;";
|
||||||
|
deindent;
|
||||||
|
pidl "}";
|
||||||
|
pidl "";
|
||||||
|
pidl "%typemap(argout) $name*result {";
|
||||||
|
indent;
|
||||||
|
pidl "\$result = SWIG_NewPointerObj(*\$1, \$1_descriptor, 0);";
|
||||||
|
deindent;
|
||||||
|
pidl "}";
|
||||||
|
}
|
||||||
|
|
||||||
sub ParseInterface($$)
|
sub ParseInterface($$)
|
||||||
{
|
{
|
||||||
my ($basename,$if) = @_;
|
my ($basename,$if) = @_;
|
||||||
@ -46,12 +62,16 @@ sub ParseInterface($$)
|
|||||||
pidl "";
|
pidl "";
|
||||||
pidl "\%extend $if->{NAME} {";
|
pidl "\%extend $if->{NAME} {";
|
||||||
indent();
|
indent();
|
||||||
pidl "NTSTATUS $if->{NAME} (const char *binding, struct cli_credentials *cred, TALLOC_CTX *mem_ctx, struct event_context *event, struct $if->{NAME} **result)";
|
pidl "$if->{NAME} () {";
|
||||||
|
indent;
|
||||||
|
pidl "return talloc(NULL, struct $if->{NAME});";
|
||||||
|
deindent;
|
||||||
|
pidl "}";
|
||||||
|
pidl "";
|
||||||
|
pidl "NTSTATUS connect (const char *binding, struct cli_credentials *cred, struct event_context *event)";
|
||||||
pidl "{";
|
pidl "{";
|
||||||
indent;
|
indent;
|
||||||
pidl "*result = talloc(mem_ctx, struct $if->{NAME});";
|
pidl "return dcerpc_pipe_connect(\$self, &\$self->pipe, binding, &ndr_table_$if->{NAME}, cred, event);";
|
||||||
pidl "";
|
|
||||||
pidl "return dcerpc_pipe_connect(mem_ctx, &(*result)->pipe, binding, &ndr_table_$if->{NAME}, cred, event);";
|
|
||||||
deindent;
|
deindent;
|
||||||
pidl "}";
|
pidl "}";
|
||||||
pidl "";
|
pidl "";
|
||||||
@ -85,7 +105,7 @@ sub ParseInterface($$)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pidl "";
|
pidl "";
|
||||||
pidl "status = dcerpc_$fn->{NAME}(self->pipe, mem_ctx, &r);";
|
pidl "status = dcerpc_$fn->{NAME}(\$self->pipe, mem_ctx, &r);";
|
||||||
pidl "if (NT_STATUS_IS_ERR(status)) {";
|
pidl "if (NT_STATUS_IS_ERR(status)) {";
|
||||||
pidl "\treturn status;";
|
pidl "\treturn status;";
|
||||||
pidl "}";
|
pidl "}";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user