60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
|
|
###########################################################################
|
||
|
|
#
|
||
|
|
# This program is part of Zenoss Core, an open source monitoring platform.
|
||
|
|
# Copyright (C) 2008-2010, Zenoss Inc.
|
||
|
|
#
|
||
|
|
# This program is free software; you can redistribute it and/or modify it
|
||
|
|
# under the terms of the GNU General Public License version 2, or (at your
|
||
|
|
# option) any later version, as published by the Free Software Foundation.
|
||
|
|
#
|
||
|
|
# For complete information please visit: http://www.zenoss.com/oss/
|
||
|
|
#
|
||
|
|
###########################################################################
|
||
|
|
|
||
|
|
__doc__="Define the rpc_request structure."
|
||
|
|
|
||
|
|
from pysamba.library import *
|
||
|
|
|
||
|
|
class rpc_request(Structure): pass
|
||
|
|
class dcerpc_pipe(Structure): pass
|
||
|
|
class GUID(Structure):
|
||
|
|
_fields_ = [
|
||
|
|
]
|
||
|
|
class DATA_BLOB(Structure):
|
||
|
|
_fields_ = [
|
||
|
|
('data', POINTER(uint8_t)),
|
||
|
|
('length', size_t),
|
||
|
|
]
|
||
|
|
class ndr(Structure):
|
||
|
|
_fields_ = [
|
||
|
|
('table', c_void_p), # lie: POINTER(dcerpc_interface_table)
|
||
|
|
('opnum', uint32_t),
|
||
|
|
('struct_ptr', c_void_p),
|
||
|
|
('mem_ctx', c_void_p), # lie: POINTER(TALLOC_CTX)
|
||
|
|
]
|
||
|
|
class async(Structure):
|
||
|
|
_fields_ = [
|
||
|
|
('callback', CFUNCTYPE(None, POINTER(rpc_request))),
|
||
|
|
('private', c_void_p),
|
||
|
|
]
|
||
|
|
|
||
|
|
rpc_request._fields_ = [
|
||
|
|
('next', POINTER(rpc_request)),
|
||
|
|
('prev', POINTER(rpc_request)),
|
||
|
|
('p', POINTER(dcerpc_pipe)),
|
||
|
|
('status', NTSTATUS),
|
||
|
|
('call_id', uint32_t),
|
||
|
|
('state', enum),
|
||
|
|
('payload', DATA_BLOB),
|
||
|
|
('flags', uint32_t),
|
||
|
|
('fault_code', uint32_t),
|
||
|
|
('recv_handler', c_void_p), # lie
|
||
|
|
('object', POINTER(GUID)),
|
||
|
|
('opnum', uint16_t),
|
||
|
|
('request_data', DATA_BLOB),
|
||
|
|
('async_call', BOOL),
|
||
|
|
('ndr', ndr),
|
||
|
|
('async', async),
|
||
|
|
]
|
||
|
|
|