mirror of
https://github.com/samba-team/samba.git
synced 2025-01-13 13:18:06 +03:00
Expose transfer and abstract syntax.
This commit is contained in:
parent
daed1432d2
commit
a875e07a37
@ -68,8 +68,6 @@ static bool ndr_syntax_from_py_object(PyObject *object, struct ndr_syntax_id *sy
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static PyObject *py_iface_server_name(PyObject *obj, void *closure)
|
||||
{
|
||||
const char *server_name;
|
||||
@ -82,9 +80,43 @@ static PyObject *py_iface_server_name(PyObject *obj, void *closure)
|
||||
return PyString_FromString(server_name);
|
||||
}
|
||||
|
||||
static PyObject *py_ndr_syntax_id(struct ndr_syntax_id *syntax_id)
|
||||
{
|
||||
PyObject *ret;
|
||||
char *uuid_str;
|
||||
|
||||
uuid_str = GUID_string(NULL, &syntax_id->uuid);
|
||||
if (uuid_str == NULL)
|
||||
return NULL;
|
||||
|
||||
ret = Py_BuildValue("(s,i)", uuid_str, syntax_id->if_version);
|
||||
|
||||
talloc_free(uuid_str);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static PyObject *py_iface_abstract_syntax(PyObject *obj, void *closure)
|
||||
{
|
||||
dcerpc_InterfaceObject *iface = (dcerpc_InterfaceObject *)obj;
|
||||
|
||||
return py_ndr_syntax_id(&iface->pipe->syntax);
|
||||
}
|
||||
|
||||
static PyObject *py_iface_transfer_syntax(PyObject *obj, void *closure)
|
||||
{
|
||||
dcerpc_InterfaceObject *iface = (dcerpc_InterfaceObject *)obj;
|
||||
|
||||
return py_ndr_syntax_id(&iface->pipe->transfer_syntax);
|
||||
}
|
||||
|
||||
static PyGetSetDef dcerpc_interface_getsetters[] = {
|
||||
{ discard_const_p(char, "server_name"), py_iface_server_name, NULL,
|
||||
discard_const_p(char, "name of the server, if connected over SMB") },
|
||||
{ discard_const_p(char, "abstract_syntax"), py_iface_abstract_syntax, NULL,
|
||||
discard_const_p(char, "syntax id of the abstract syntax") },
|
||||
{ discard_const_p(char, "transfer_syntax"), py_iface_transfer_syntax, NULL,
|
||||
discard_const_p(char, "syntax id of the transfersyntax") },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
@ -28,11 +28,14 @@ class BareTestCase(TestCase):
|
||||
("60a15ec5-4de8-11d7-a637-005056a20182", 1))
|
||||
self.assertEquals("\x01\x00\x00\x00", x.request(0, chr(0) * 4))
|
||||
|
||||
#def test_alter_context(self):
|
||||
# x = ClientConnection("ncalrpc:localhost[DEFAULT]",
|
||||
# ("12345778-1234-abcd-ef00-0123456789ac", 1))
|
||||
# x.alter_context(("60a15ec5-4de8-11d7-a637-005056a20182", 1))
|
||||
# self.assertEquals("\x01\x00\x00\x00", x.request(0, chr(0) * 4))
|
||||
def test_alter_context(self):
|
||||
x = ClientConnection("ncalrpc:localhost[DEFAULT]",
|
||||
("12345778-1234-abcd-ef00-0123456789ac", 1))
|
||||
y = ClientConnection("ncalrpc:localhost",
|
||||
("60a15ec5-4de8-11d7-a637-005056a20182", 1),
|
||||
basis_connection=x)
|
||||
x.alter_context(("60a15ec5-4de8-11d7-a637-005056a20182", 1))
|
||||
# FIXME: self.assertEquals("\x01\x00\x00\x00", x.request(0, chr(0) * 4))
|
||||
|
||||
def test_two_connections(self):
|
||||
x = ClientConnection("ncalrpc:localhost[DEFAULT]",
|
||||
|
@ -30,6 +30,10 @@ class RpcEchoTests(RpcInterfaceTestCase):
|
||||
self.conn2 = echo.rpcecho("ncalrpc", basis_connection=self.conn)
|
||||
self.assertEquals(3, self.conn2.AddOne(2))
|
||||
|
||||
def test_abstract_syntax(self):
|
||||
self.assertEquals(("60a15ec5-4de8-11d7-a637-005056a20182", 1),
|
||||
self.conn.abstract_syntax)
|
||||
|
||||
def test_addone(self):
|
||||
self.assertEquals(2, self.conn.AddOne(1))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user