[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Thu Mar 18 06:38:12 MDT 2010
The branch, master has been updated
via 30aa55a... pidl:Samba4/Python: make use of dcerpc_binding_handle stubs
via 5e9ce49... s4:librpc/rpc: let pyrpc make use of dcerpc_binding_handle stubs
via f055fce... pidl:Samba4/Python: remove compiler warnings
via 2624baf... pidl:Samba4/Python: remove compiler warnings when using -Wc++
from fd86c9b... s4:utils/net/drs: make use of dcerpc_binding_handle stubs
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 30aa55a998016c5d87691b3592435a21107fe33b
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 18 11:26:19 2010 +0100
pidl:Samba4/Python: make use of dcerpc_binding_handle stubs
metze
commit 5e9ce495eef98b2b27a77bf042514ccb2037d33d
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 18 11:25:21 2010 +0100
s4:librpc/rpc: let pyrpc make use of dcerpc_binding_handle stubs
metze
commit f055fce74c0f569e8bfcf29e5c4fadb592a7c87d
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 18 12:36:57 2010 +0100
pidl:Samba4/Python: remove compiler warnings
metze
commit 2624bafca532de66ae1d4976f8c2e99f5f7b250e
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 18 10:52:05 2010 +0100
pidl:Samba4/Python: remove compiler warnings when using -Wc++
metze
-----------------------------------------------------------------------
Summary of changes:
pidl/lib/Parse/Pidl/Samba4/Python.pm | 8 ++++----
source4/librpc/rpc/dcerpc.h | 2 --
source4/librpc/rpc/pyrpc.c | 5 ++++-
source4/librpc/rpc/pyrpc.h | 4 +++-
4 files changed, 11 insertions(+), 8 deletions(-)
Changeset truncated at 500 lines:
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index a6c2738..5cf619b 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -657,14 +657,14 @@ sub Interface($$$)
my ($infn, $outfn, $fndocstring) = $self->PythonFunction($d, $interface->{NAME}, $prettyname);
- push (@fns, [$infn, $outfn, "dcerpc_$d->{NAME}", $prettyname, $fndocstring, $d->{OPNUM}]);
+ push (@fns, [$infn, $outfn, "dcerpc_$d->{NAME}_r", $prettyname, $fndocstring, $d->{OPNUM}]);
}
$self->pidl("const struct PyNdrRpcMethodDef py_ndr_$interface->{NAME}\_methods[] = {");
$self->indent;
foreach my $d (@fns) {
my ($infn, $outfn, $callfn, $prettyname, $docstring, $opnum) = @$d;
- $self->pidl("{ \"$prettyname\", $docstring, (dcerpc_call_fn)$callfn, (py_data_pack_fn)$infn, (py_data_unpack_fn)$outfn, $opnum, &ndr_table_$interface->{NAME} },");
+ $self->pidl("{ \"$prettyname\", $docstring, (py_dcerpc_call_fn)$callfn, (py_data_pack_fn)$infn, (py_data_unpack_fn)$outfn, $opnum, &ndr_table_$interface->{NAME} },");
}
$self->pidl("{ NULL }");
$self->deindent;
@@ -727,7 +727,7 @@ sub register_module_typeobject($$$)
{
my ($self, $name, $py_name) = @_;
- $self->register_module_object($name, "(PyObject *)$py_name");
+ $self->register_module_object($name, "(PyObject *)(void *)$py_name");
$self->check_ready_type($py_name);
@@ -833,7 +833,7 @@ sub ConvertObjectFromPythonData($$$$$$;$)
return;
}
$self->pidl("PY_CHECK_TYPE($ctype_name, $cvar, $fail);");
- $self->assign($target, "py_talloc_get_ptr($cvar)");
+ $self->assign($target, "(".mapTypeName($ctype)." *)py_talloc_get_ptr($cvar)");
return;
}
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h
index 08210e0..70e90c4 100644
--- a/source4/librpc/rpc/dcerpc.h
+++ b/source4/librpc/rpc/dcerpc.h
@@ -392,8 +392,6 @@ NTSTATUS dcerpc_request(struct dcerpc_pipe *p,
DATA_BLOB *stub_data_in,
DATA_BLOB *stub_data_out);
-typedef NTSTATUS (*dcerpc_call_fn) (struct dcerpc_pipe *, TALLOC_CTX *, void *);
-
enum dcerpc_transport_t dcerpc_transport_by_endpoint_protocol(int prot);
const char *dcerpc_floor_get_rhs_data(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor);
diff --git a/source4/librpc/rpc/pyrpc.c b/source4/librpc/rpc/pyrpc.c
index 00bc683..012f188 100644
--- a/source4/librpc/rpc/pyrpc.c
+++ b/source4/librpc/rpc/pyrpc.c
@@ -57,7 +57,7 @@ static PyObject *py_dcerpc_run_function(dcerpc_InterfaceObject *iface,
return NULL;
}
- status = md->call(iface->pipe, mem_ctx, r);
+ status = md->call(iface->binding_handle, mem_ctx, r);
if (NT_STATUS_IS_ERR(status)) {
PyErr_SetDCERPCStatus(iface->pipe, status);
talloc_free(mem_ctx);
@@ -356,6 +356,7 @@ PyObject *py_dcerpc_interface_init_helper(PyTypeObject *type, PyObject *args, Py
}
ret->pipe->conn->flags |= DCERPC_NDR_REF_ALLOC;
+ ret->binding_handle = ret->pipe->binding_handle;
return (PyObject *)ret;
}
@@ -425,6 +426,7 @@ static PyObject *dcerpc_interface_new(PyTypeObject *self, PyObject *args, PyObje
}
ret->pipe = NULL;
+ ret->binding_handle = NULL;
if (py_basis != Py_None) {
struct dcerpc_pipe *base_pipe;
@@ -451,6 +453,7 @@ static PyObject *dcerpc_interface_new(PyTypeObject *self, PyObject *args, PyObje
return NULL;
}
ret->pipe->conn->flags |= DCERPC_NDR_REF_ALLOC;
+ ret->binding_handle = ret->pipe->binding_handle;
return (PyObject *)ret;
}
diff --git a/source4/librpc/rpc/pyrpc.h b/source4/librpc/rpc/pyrpc.h
index efbcac6..3233754 100644
--- a/source4/librpc/rpc/pyrpc.h
+++ b/source4/librpc/rpc/pyrpc.h
@@ -44,6 +44,7 @@
typedef struct {
PyObject_HEAD
struct dcerpc_pipe *pipe;
+ struct dcerpc_binding_handle *binding_handle;
} dcerpc_InterfaceObject;
PyAPI_DATA(PyTypeObject) dcerpc_InterfaceType;
@@ -55,13 +56,14 @@ PyAPI_DATA(PyTypeObject) dcerpc_InterfaceType;
void PyErr_SetDCERPCStatus(struct dcerpc_pipe *p, NTSTATUS status);
+typedef NTSTATUS (*py_dcerpc_call_fn) (struct dcerpc_binding_handle *, TALLOC_CTX *, void *);
typedef bool (*py_data_pack_fn) (PyObject *args, PyObject *kwargs, void *r);
typedef PyObject *(*py_data_unpack_fn) (void *r);
struct PyNdrRpcMethodDef {
const char *name;
const char *doc;
- dcerpc_call_fn call;
+ py_dcerpc_call_fn call;
py_data_pack_fn pack_in_data;
py_data_unpack_fn unpack_out_data;
uint32_t opnum;
--
Samba Shared Repository
More information about the samba-cvs
mailing list