From 779b89cfc8e65b8e6a4ad2d868ab04f014a4bc20 Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Sun, 5 Sep 2004 02:06:11 +0000 Subject: r2228: Finally commit bits of old workareas together to get dcerpc python bindings happening. This commit lets python call dcerpc_pipe_connect() and open the samr pipe. (This used to be commit f5852bf3e2064f03aa9b63af4aa1b4f9e39bdb24) --- source4/scripting/swig/dcerpc.i | 68 +++++++++++++++++++++++++++++++++++++++++ source4/scripting/swig/samba.i | 6 ++++ source4/scripting/swig/samr.i | 25 +++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 source4/scripting/swig/dcerpc.i create mode 100644 source4/scripting/swig/samr.i (limited to 'source4/scripting') diff --git a/source4/scripting/swig/dcerpc.i b/source4/scripting/swig/dcerpc.i new file mode 100644 index 0000000000..9ecc2702bb --- /dev/null +++ b/source4/scripting/swig/dcerpc.i @@ -0,0 +1,68 @@ +/* + Unix SMB/CIFS implementation. + + Swig interface to librpc functions. + + Copyright (C) Tim Potter 2004 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +%module dcerpc + +%{ + +/* This symbol is used in both includes.h and Python.h which causes an + annoying compiler warning. */ + +#ifdef HAVE_FSTAT +#undef HAVE_FSTAT +#endif + +#include "includes.h" + +#undef strcpy + +%} + +%include "samba.i" + +%init %{ +/* setup_logging("python", DEBUG_STDOUT); */ + lp_load(dyn_CONFIGFILE, True, False, False); + load_interfaces(); +%} + +%typemap(in, numinputs=0) struct dcerpc_pipe **OUT (struct dcerpc_pipe *temp) { + $1 = &temp; +} + +%typemap(argout) struct dcerpc_pipe ** { + PyObject *o = PyTuple_New(2); + PyTuple_SetItem(o, 0, resultobj); + PyTuple_SetItem(o, 1, SWIG_NewPointerObj(*$1, SWIGTYPE_p_dcerpc_pipe, 0)); + resultobj = o; +} + +%types(struct dcerpc_pipe *); + +NTSTATUS dcerpc_pipe_connect(struct dcerpc_pipe **OUT, + const char *binding, + const char *pipe_uuid, + uint32 pipe_version, + const char *domain, + const char *username, + const char *password); +%include "samr.i" diff --git a/source4/scripting/swig/samba.i b/source4/scripting/swig/samba.i index 60f2efcc19..8e0eb88533 100644 --- a/source4/scripting/swig/samba.i +++ b/source4/scripting/swig/samba.i @@ -31,3 +31,9 @@ } $1 = (uint32_t)PyInt_AsLong($input); } + +/* For the moment treat NTSTATUS as an integer */ + +%typemap(out) NTSTATUS { + $result = PyInt_FromLong(NT_STATUS_V($1)); +} diff --git a/source4/scripting/swig/samr.i b/source4/scripting/swig/samr.i new file mode 100644 index 0000000000..ceb21db17a --- /dev/null +++ b/source4/scripting/swig/samr.i @@ -0,0 +1,25 @@ +/* + Unix SMB/CIFS implementation. + + Swig interface to librpc functions. + + Copyright (C) Tim Potter 2004 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#define DCERPC_SAMR_UUID "12345778-1234-abcd-ef00-0123456789ac" +const int DCERPC_SAMR_VERSION = 1.0; +#define DCERPC_SAMR_NAME "samr" -- cgit