1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-01 04:58:35 +03:00

r5224: Add in/out typemaps for resume handles. This saves us having to much

around with pointers to just one uint32.

Add an output typemap to copy a policy handle as the talloc context is
destroyed before the wrapper function returns.  More work here needed
to avoid memory leaks.

Use the swig carrays.i file to create accessor and setter functions
for fixed width integer types.  Also add functions for struct samr_SamEntry
as it's returned by the LookupDomain RPC.  This really needs to be
done by pidl so I don't have to go through and find all the structures
that are returned in arrays.

Include security.i to give us SIDs and security descriptors.
(This used to be commit 5a1f6c999ef5e84e93ec8f07b9751d795c4566a5)
This commit is contained in:
Tim Potter 2005-02-04 06:35:45 +00:00 committed by Gerald (Jerry) Carter
parent aa747a5712
commit 05db954edd

View File

@ -169,10 +169,49 @@ NTSTATUS dcerpc_pipe_connect(struct dcerpc_pipe **OUT,
const char *dcerpc_server_name(struct dcerpc_pipe *p);
/* Some typemaps for easier access to resume handles. Really this can
also be done using the uint32 carray functions, but it's a bit of a
hassle. TODO: Fix memory leak here. */
%typemap(in) uint32_t *resume_handle {
$1 = malloc(sizeof(*$1));
*$1 = PyLong_AsLong($input);
}
%typemap(out) uint32_t *resume_handle {
$result = PyLong_FromLong(*$1);
}
/* When returning a policy handle to Python we need to make a copy of
as the talloc context it is created under is destroyed after the
wrapper function returns. TODO: Fix memory leak created here. */
%typemap(out) struct policy_handle * {
struct policy_handle *temp = (struct policy_handle *)malloc(sizeof(struct policy_handle));
memcpy(temp, $1, sizeof(struct policy_handle));
$result = SWIG_NewPointerObj(temp, SWIGTYPE_p_policy_handle, 0);
}
%{
#include "librpc/gen_ndr/ndr_misc.h"
#include "librpc/gen_ndr/ndr_security.h"
#include "librpc/gen_ndr/ndr_samr.h"
%}
%include "carrays.i"
/* Some functions for accessing arrays of fixed-width integers. */
%array_functions(uint8_t, uint8_array);
%array_functions(uint16_t, uint16_array);
%array_functions(uint32_t, uint32_array);
/* Functions for handling arrays of structures. It would be nice for
pidl to automatically generating these instead of having to find
them all by hand. */
%array_functions(struct samr_SamEntry, samr_SamEntry_array);
%include "librpc/gen_ndr/misc.i"
%include "librpc/gen_ndr/security.i"
%include "librpc/gen_ndr/samr.i"