diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2012-12-28 15:37:14 +0100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2013-03-02 03:57:34 +0100 |
commit | 87afc3aee1ea593069322a49355dd8780d99e123 (patch) | |
tree | 8e1ea6678d93b53f21b34c4940b7d5a64e0f5020 /python/samba/ndr.py | |
parent | 80fce353e740c793619005ac102ab07fb5e7d280 (diff) | |
download | samba-87afc3aee1ea593069322a49355dd8780d99e123.tar.gz |
Move python modules from source4/scripting/python/ to python/.
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Sat Mar 2 03:57:34 CET 2013 on sn-devel-104
Diffstat (limited to 'python/samba/ndr.py')
-rw-r--r-- | python/samba/ndr.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/python/samba/ndr.py b/python/samba/ndr.py new file mode 100644 index 00000000000..39e4a482efb --- /dev/null +++ b/python/samba/ndr.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- + +# Unix SMB/CIFS implementation. +# Copyright © Jelmer Vernooij <jelmer@samba.org> 2008 +# +# 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 3 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, see <http://www.gnu.org/licenses/>. +# + + +"""Network Data Representation (NDR) marshalling and unmarshalling.""" + + +def ndr_pack(object): + """Pack a NDR object. + + :param object: Object to pack + :return: String object with marshalled object. + """ + ndr_pack = getattr(object, "__ndr_pack__", None) + if ndr_pack is None: + raise TypeError("%r is not a NDR object" % object) + return ndr_pack() + + +def ndr_unpack(cls, data, allow_remaining=False): + """NDR unpack an object. + + :param cls: Class of the object to unpack + :param data: Buffer to unpack + :param allow_remaining: allows remaining data at the end (default=False) + :return: Unpacked object + """ + object = cls() + object.__ndr_unpack__(data, allow_remaining=allow_remaining) + return object + + +def ndr_print(object): + return object.__ndr_print__() |